Device synchronization using noise sign and pattern recognition

By introducing noisy symbols into the synchronization symbol sequence, synchronization failure and security problems in the prior art are solved, and higher synchronization success rate and security are achieved.

CN114175754BActive Publication Date: 2025-03-07MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080054743.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-08-03
Filing Date
2020-06-10
Publication Date
2025-03-07
Estimated Expiration
2040-06-10

AI Technical Summary

Technical Problem

The prior art is susceptible to the influence of noisy symbols during the synchronization process, resulting in synchronization failure or loss of synchronization. The synchronization security is vulnerable to attacks and it is difficult to prevent replay attacks by malicious personnel.

Method used

By introducing noise symbols that tolerate unexpected and/or intentionally introduced, it allows the inclusion of noise symbols in the synchronous symbol sequence to improve the success rate of synchronization attempts, and prevent malicious personnel from misappropriating the synchronous symbol sequence through the use of noise symbols.

Benefits of technology

Enhanced the success rate of synchronization attempts, especially in noisy environments, improves synchronization security and prevents malicious attacks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114175754B_ABST
    Figure CN114175754B_ABST
Patent Text Reader

Abstract

In some examples, methods, systems, and machine-readable media are disclosed that allow for more secure and robust synchronization by implementing a synchronization system that utilizes a sequence that may include interspersed noise symbols. These systems synchronize during synchronization attempts despite one or more noise symbols N in intervening locations unknown to the recipient device, reducing the amount of failed synchronization attempts.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Computing devices, such as Internet of Things (IoT) devices, may need to synchronize with other computing devices, such as servers or other IoT devices, for various reasons. To synchronize, a transmitting device may send a synchronization symbol sequence to a receiving device. The receiving device recognizes the synchronization symbol sequence and, in response, takes a specified synchronization action. For example, the synchronization symbol sequence may be used to determine the bit, word, byte, and packet structure of a transmission. As another example, a particular computing device may operate in a low-power state, monitoring a synchronization symbol sequence for commanding the device to wake up and transmit data. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] In the accompanying drawings, which are not necessarily drawn to scale, like numbers may describe like components in different views. Like numbers with different letter subscripts may represent different instances of similar components. The accompanying drawings generally illustrate various embodiments discussed herein by way of example and not limitation.

[0003] Figure 1 An exemplary synchronization environment is illustrated in which a transmitting computing device sends a synchronization symbol sequence to a receiving computing device according to some examples of the present disclosure.

[0004] Figure 2 A message sequence chart illustrating an exemplary synchronization attempt between a transmitting computing device and a receiving computing device according to some examples of the present disclosure is illustrated.

[0005] Figure 3 A diagram of a data flow that may include synchronization checking of additional unspecified noise symbols according to some examples of the present disclosure is illustrated.

[0006] Figure 4 A flowchart illustrating a method of synchronizing computing devices according to some examples of the present disclosure is illustrated.

[0007] Figure 5 A flowchart illustrating a method of synchronizing computing devices according to some examples of the present disclosure is illustrated.

[0008] Figure 6 A flow chart illustrating a method of synchronizing devices using forced symbol insertion according to some examples of the present disclosure is illustrated.

[0009] Figure 7 A flow chart illustrating a method of synchronizing devices using a dispersion metric according to some examples of the present disclosure is illustrated.

[0010] Figure 8 A diagram of a synchronized data stream with additional unspecified noise symbols is illustrated according to some examples of the present disclosure.

[0011] Figure 9 A diagram of a data flow of synchronization attempts with additional unspecified noise symbols and a forced synchronization symbol sequence subset is illustrated according to some examples of the present disclosure.

[0012] Figure 10 A flow chart illustrating a method of synchronizing devices using a subset of synchronization symbol sequences according to some examples of the present disclosure is illustrated.

[0013] Figure 11 A flowchart of a method of synchronizing devices according to some examples of the present disclosure is illustrated.

[0014] Figure 12 An example of a method for transmitting a synchronization sequence according to some examples of the present disclosure is illustrated.

[0015] Figure 13 Illustrated is a block diagram of an example machine that can implement one or more of the techniques (eg, methodologies) discussed herein, according to some examples of the present disclosure. DETAILED DESCRIPTION

[0016] Computing devices that rely on synchronization symbol sequences typically search received data for an exact match to an expected synchronization symbol sequence. A consequence of requiring an exact match is that noise in the communication channel between the transmitting device and the receiving device may cause noise symbols to be mixed in with the synchronization symbols, resulting in synchronization failure or loss of synchronization. Synchronization failure or loss of synchronization may cause problems in situations where, for example, data to be sent by the computing device accumulates in a buffer on the device. Synchronization failure may not allow data to be transmitted from the buffer. As the buffer fills, if the device is unable to synchronize, new data may overwrite old data in the buffer, and the old data may be lost. This problem can be particularly severe in IoT devices that accumulate sensor data.

[0017] Furthermore, for some computing devices, synchronization packets can be an attractive target for malicious actors. For example, a malicious actor could replay a synchronization packet to induce a recipient to send data to the malicious actor. In other examples, a malicious actor could replay a synchronization packet to send data to the recipient that could contain a malicious payload. In some examples, if the synchronization packet wakes up the computing device, an attacker could command the computing device to wake up by intercepting the wakeup sequence and replaying it. This could cause battery-powered devices to drain their batteries faster or result in the sending of data that should not have been sent.

[0018] In some examples, methods, systems, and machine-readable media are disclosed that allow for more secure and robust synchronization by implementing a synchronization system that can include sequences of interspersed noise symbols. These systems reduce the number of failed synchronization attempts because they allow synchronization to occur even when one or more noise symbols N are present at undetermined locations not known in advance to the receiving device during the synchronization attempt. Additionally, in some examples, the transmitting device can intentionally intersperse the synchronization symbol sequence with noise symbols N to provide a higher level of security from an eavesdropper's perspective and help prevent replay attacks because the eavesdropper cannot determine in advance where the noise symbols are and, therefore, what the synchronization symbol sequence is. In other examples, it may be desirable to introduce interspersed noise symbols for synchronization to improve the security of the synchronization.

[0019] While these synchronization systems are more secure, they are not easy to implement. For example, since the receiving computing device does not know the location of the noise symbols, it is not easy to ignore the noise symbol N and determine whether the remaining symbols match the synchronization symbol. Disclosed herein is a method for efficiently determining whether a synchronization symbol sequence exists in received data symbols (even with the noise symbol N).

[0020] The present disclosure addresses the technical issues of missed synchronization and vulnerable synchronization security by introducing tolerance for accidentally and / or intentionally introduced noise symbols. This improves the success rate of synchronization attempts relative to conventional exact-match synchronization systems, particularly in noisy environments. Furthermore, the use of noise symbols N can be exploited to prevent malicious individuals from misappropriating synchronization symbol sequences. Thus, the present invention improves the operation of computing devices by reducing synchronization failures and increasing synchronization security.

[0021] These techniques can be used in IoT devices by allowing low-power synchronization before transmitting data. Other use cases for the disclosed technology may include synchronization in cellular devices with other cellular devices (P2P) or with base stations. Other use cases may include communication between clients and edge computing devices.

[0022] Figure 1 An exemplary synchronization environment 100 is illustrated in accordance with some examples of the present disclosure, in which a transmitting computing device 110 transmits a synchronization symbol sequence 115 to a receiving computing device 112. As used herein, the transmitting computing device 110 attempts to synchronize with the receiving computing device 112 by transmitting the synchronization symbol sequence 115. Terms are used with reference to their respective roles during synchronization. It is understood that the transmitting computing device 110 can receive data transmitted from the receiving computing device 112, and the receiving computing device 112 can transmit data.

[0023] The synchronization symbol sequence 115 may be sent by the transmitting computing device 110 over the network 175. As previously described, the purpose of synchronization may be to start data transmission to align packet, byte, or other data unit boundaries; to wake up the computing device; etc. The network 175 may include any computing network, including a local area network (LAN), a wide area network (WAN), the Internet, etc.

[0024] Transmitting computing device 110 may determine that synchronization with receiving computing device 112 is necessary. For example, transmitting computing device 110 may wish to exchange data with receiving computing device 112, and as part of the data exchange, transmitting computing device 110 may need to synchronize with receiving computing device 112. Synchronizer 120 may read synchronization symbol sequence 115 from database 118 and send synchronization symbol sequence 115 to receiving computing device 112 via network 175. Synchronization symbol sequence 115 may be a unique sequence for each receiving computing device (a recipient computing device receiving a synchronized transmission with the synchronization sequence), or it may be the same synchronization symbol sequence for each receiving computing device. In some examples, the synchronization symbol sequence may be unique for each transmitting computing device, but in other examples, it may be the same for each computing device. In yet additional examples, synchronization symbol sequence 115 may be different for each pair of transmitting and receiving computing devices. In examples where synchronization symbol sequence 115 is different for one or more of the transmitting computing device and / or the receiving computing device, synchronizer 120 may calculate synchronization symbol sequence 115 in advance or as part of the synchronization process. In some examples, one or more formulas and parameters for the formulas may be stored in database 118 and / or determined by synchronizer 120 as part of or prior to the synchronization process.

[0025] The synchronization symbol sequence 115 may be stored as part of the instructions of the synchronizer 120 (e.g., as part of the object code of the synchronizer 120), stored separately in a data repository or database 118, received from a server, etc. The transmission utilizing the synchronization symbol sequence may be a separate synchronization message or packet; or the synchronization symbol sequence may be included as a header or preamble in another packet or transmission. For example, as in Figure 2 As shown in , synchronization symbol sequence data 250 precedes data 255. In some examples, one or more noise symbols N may be added to the synchronization symbol sequence 115. The noise symbols may not be known in advance to the receiving computing device 112 for this particular synchronization attempt.

[0026] The receiving computing device 112 receives the transmission, and the synchronizer 135 examines the received bit stream to determine whether the received synchronization sequence matches the expected synchronization symbol sequence 115. The synchronizer 135 can be configured to determine that the received synchronization symbol sequence transmitted from the transmitting computing device 110 matches the expected synchronization symbol sequence 115 even if one or more noise symbols N are interleaved with the synchronization symbol sequence 115. In some examples, all symbols of the synchronization symbol sequence 115 may need to be present (despite the interleaving of the noise symbols N) and in the same order. In other examples, a perfect match is not required, even when the interleaved noise symbols N are not included. In yet other examples, a subset of the synchronization symbol sequence 115 may be utilized rather than the entire synchronization symbol sequence 115, and the synchronizer 135 is configured to search for the subset and reject synchronization attempts that utilize the complete synchronization symbol sequence 115. As previously described, the noise symbols N may be added by the synchronizer 120 or by noise on the network 175.

[0027] As previously described, in some examples, the synchronization symbol sequence 115 is different for one or more of the transmitting computing device and / or the receiving computing device. In these examples, synchronizer 135, like synchronizer 120, can calculate the synchronization symbol sequence 115 in advance or as part of the synchronization process. In some examples, one or more formulas and parameters for the formulas can be stored in database 130 and / or determined by synchronizer 135 as part of the synchronization process or before the synchronization process.

[0028] Figure 2 A message sequence diagram illustrating an exemplary synchronization attempt between a transmitting computing device 110 and a receiving computing device 112 is shown. Transmitting computing device 110 transmits a synchronization symbol sequence 202. The transmission may include multiple symbols in a specific order and may include a synchronization symbol sequence. In some examples, the synchronization symbol sequence may be transmitted in a synchronization packet or header. At operation 204, receiving computing device 112 identifies the synchronization symbol sequence. For example, the synchronization symbol sequence may exactly match the expected synchronization symbol sequence or may match an intervening noise symbol N. In some examples, the match is determined based on the received synchronization symbol being less than a defined distance from the exact synchronization symbol sequence.

[0029] In some examples, an acknowledgement 206 can be sent by the receiving computing device 112, acknowledging receipt of the synchronization symbol sequence. In some examples, a data exchange 208 can occur, whereby the first device and the second device transmit and / or receive data packets. In some examples, the data exchange 208 can be part of the transmission 202 with the synchronization symbol sequence, such as illustrated by the bitstream 245.

[0030] The receiving computing device 112 searches the bit stream 245 of the transmission 202 for a synchronization symbol sequence 250. Figure 2 In the example shown, the synchronization symbol sequence is a binary ASCII encoding of the string "SYNCH". A noise symbol with a value of "11101111" appears before the synchronization symbol sequence 250. The bit stream 245 includes synchronization symbol sequence data 250 that matches the expected synchronization symbol sequence. The receiving computing device 112 can then begin receiving data at a synchronization point 257, which is immediately after the last symbol of the synchronization symbol sequence. For example, the receiving computing device 112 aligns the data buffer, byte boundary, etc. with the synchronization point 257. In this case, the bit stream after the synchronization point 257 is a binary ASCII encoding of the string "HELLO".

[0031] In some examples, to find the synchronization symbol sequence, various permutations of received symbols of length m (where m is the length of the synchronization symbol sequence in symbols) are compared with an expected synchronization symbol sequence to determine a correlation or other distance metric between the permutations and the expected synchronization symbol sequence. Figure 2 In the example of , the synchronization symbol sequence is five bytes long. The synchronizer 135 of the receiving computing device 112 creates a set of vectors from the beginning of the bit stream 245 with all possible combinations of five ordered symbol sequences - that is, symbols can be skipped, but are in the same order in the vector relative to the other symbols when they are received. Each of these vectors can be input along with the expected synchronization symbol sequence to determine a distance metric (such as correlation). If the distance metric meets a defined condition (e.g., the vector with the smallest distance metric is within a defined threshold for the sequence, or if the vector with the smallest distance matches the synchronization symbol, etc.), the computing device can determine a synchronization point - such as synchronization point 257 - based on the identified synchronization point (e.g., just after the last symbol of the vector with the smallest distance metric).

[0032] Figure 3 FIG3 illustrates a diagram of a data stream 300 that may include synchronization checking of additional unspecified noise symbols according to some examples of the present disclosure. According to the exemplary data stream 300, a synchronization symbol sequence 310 may include three symbols 312, 314, and 316 {P1, P2, P3} in this order. The transmitting computing device or the network adds a noise symbol 320 to the synchronization symbol sequence 310. Figure 3In the example shown in , only one noise symbol 320 is added for ease of description. The received symbols 325 received by the receiving computing device include received symbols 312, 314 and 316 (in order), along with one or more noise symbols 320 inserted into the synchronization sequence symbols.

[0033] The synchronizer 327 of the receiving computing device includes a vector creator 330 that receives the received symbols 325 and creates a plurality of vectors of length m, where m is the number of symbols in the expected synchronization symbol sequence 350. The vectors reflect each of the possible ordered length m combinations of the received symbols 325. The order of the symbols in each of the vectors is the same order as the order of the symbols in the received symbols 325. That is, if the received sequence is "14234" and the synchronization symbol sequence is "123", the vectors will all be of length three and will reflect all possible ordered (i.e., each symbol remains in the order in which it appears in the received symbols 325) combinations. In this example, the vectors will be:

[0034] <1,4,2>, <1,2,3>, <1,3,4>, <4,2,3>, <4,3,4> and <2,3,4>.

[0035] Each vector is then passed to a distance metric calculator 335, which calculates the distance between each vector in the vector and the vector of the expected synchronization symbol sequence 350. In some examples, the distance metric can be a Levenshtein distance. In other examples, the distance metric can compare each symbol of each vector with the corresponding position in the expected synchronization symbol sequence 350. If the symbols match, then the score may not be incremented. If the symbols do not match, then the score may be incremented. In other examples, a higher score reflects a better match, and thus matching symbols may result in an increase in the score, and unmatched symbols may result in the score remaining unchanged, or may result in a decrease in the score. In yet other examples, the distance metric can be a correlation with the expected synchronization symbol sequence 350, such as the Pearson correlation coefficient. In other examples, other edit distance metrics or algorithms may be used.

[0036] The distance metric for each of the vectors is then passed to the match determination logic 340. In some examples, the match determination logic 340 identifies the distance metric that represents the closest match (e.g., the smallest distance) to the expected synchronization symbol sequence 350. Depending on the desired implementation, this may be the highest score (if a score is assigned to the match) or the lowest score. If the distance metric representing the closest match is closer to the expected synchronization symbol sequence 350 than a threshold (e.g., the distance is less than the threshold), the match determination logic 340 may return: "Match found." In some examples, meeting the threshold may require a perfect match. In other examples, the match determination logic 340 identifies two distance metrics that represent the two closest matches (e.g., the smallest distance and the next smallest distance) to the expected synchronization symbol sequence 350. The match determination logic 340 may then take the ratio of the two distance metrics and compare it to the threshold to determine whether a match exists. In some examples, the use of a threshold allows synchronization to occur even when the sequence in the received symbols 325 is close to, but less than, a perfect match to the expected synchronization symbol sequence 350. This may allow for a certain level of noise tolerance, where symbols of the synchronization symbol sequence 310 are replaced by noise symbols during transmission.

[0037] The synchronization control 345 can then determine whether synchronization is achieved based on the results from the match determination logic unit 340. If the synchronization control 345 determines that synchronization is achieved, the synchronization control 345 can take one or more synchronization actions. For example, the synchronization control 345 can wake up the computing device from a low-power state to prepare the device to transmit and / or receive data. In some examples, the synchronization control 345 can use the vector representing the closest match to determine the starting position of the actual data in the received symbols 325 (e.g., the symbol in the received symbols 325 that immediately follows the position corresponding to the last symbol in the vector).

[0038] Figure 4 A flow chart of a method 400 for synchronizing computing devices according to some examples of the present disclosure is illustrated. At operation 410, the synchronizer identifies a first set of symbols corresponding to an expected synchronization symbol sequence. For example, the first set of symbols may be stored in object code of a process running on the receiving computing device. In other examples, the first set of symbols may be calculated by the receiving computing device based on the transmitting computing device and / or the receiving computing device as previously described. As used herein, a symbol is a unit of data, such as a bit, word, byte, character, or other data group.

[0039] At operation 420, the synchronizer receives a second set of symbols to be compared with the expected synchronization symbol sequence, and the second set of symbols may include more symbols (e.g., noise symbols) than the first set of symbols. For example, the noise symbols may be intentionally added by the transmitting device to prevent eavesdropping and replay attacks, or may be accidentally added by the network due to noise, or some symbols may be added by the network, and some symbols may be added by the network. The second set of symbols may be in a packet or other communication or transmission from a transmitting computing device. The second set of symbols may be a discrete part of a packet or transmission, or may be a stream of symbols transmitted from the transmitting computing device. In some examples, the second set of symbols may be received over a signaling channel. The signaling channel may be a peer-to-peer wireless connection, a broadcast connection, an Internet connection, etc. The signaling channel may be any wireless network connection to another device, whether through a network or directly.

[0040] At operation 430, the synchronizer compares at least one subset of the second set of symbols with the first set of symbols to determine a comparison result, the at least one subset having a first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset. For example, and as in Figure 3 As shown in FIG4 with respect to the vector creator 330, the synchronizer may decompose the received symbols received at operation 420 into a plurality of vectors (subsets), each vector representing each ordered combination of length m of the received sequence, where m is the length of the expected synchronization symbol sequence determined at operation 410. This may include skipping one or more symbols that may be noise symbols. One or more of the vectors (subsets) may be compared to the expected synchronization symbol sequence. For example, by determining whether one or more of the vectors is a perfect match. In other examples, the comparison may be a distance metric, such as a correlation that quantifies the similarity between the expected synchronization symbol sequence and the one or more vectors.

[0041] At operation 440, the synchronizer determines whether one or more comparisons in the comparisons satisfy a specified condition. For example, the synchronizer determines whether one or more comparisons in the comparisons indicate an exact match. In other examples, the synchronizer may determine that one or more comparisons in the comparisons indicate a distance below a threshold distance. For example, the comparison with the shortest distance may be compared with a threshold distance. In yet other examples, the synchronizer may determine whether the ratio of the minimum distance found in the comparison at operation 430 to the sub-minimum distance is above or below a threshold ratio.

[0042] If the comparison satisfies the specified condition, then at operation 450, the system may execute an action corresponding to the synchronization sequence. For example, the device may be dynamically brought from low power into a state in which the device is capable of transmitting and / or receiving data. In other examples, a communication symbol or data structure boundary (e.g., a symbol boundary) may be established based on a vector that is a minimum distance and / or a perfect match—for example, the symbol in the second set of symbols that follows the last symbol in the vector that is closest to the expected synchronization symbol sequence. In some examples, the action performed may depend on the synchronization symbol sequence. That is, the receiving device may search for a plurality of different synchronization symbol sequences and perform different actions depending on the received sequence. If the comparison does not satisfy the condition, then at operation 460, the device may continue to search for or wait for the synchronization symbol sequence.

[0043] Figure 5 A flowchart illustrating a method 500 for synchronizing computing devices according to some examples of the present disclosure is shown. The method 500 may be Figure 4 An exemplary embodiment of method 400 of the present invention may be performed by a receiving computing device that is receiving a synchronization symbol sequence from a transmitting computing device. At operation 510, the synchronizer identifies a first set of symbols corresponding to the synchronization symbol sequence. For example, by consulting a database, reading a memory location, etc. As mentioned above, the synchronization symbol sequence may be specific to the transmitting computing device, the receiving computing device, or both computing devices. In these examples, a device identifier may be used to select or determine the synchronization symbol sequence. For example, the synchronization symbol sequence may be based on a device identifier of the transmitting computing device, the receiving computing device, or both.

[0044] At operation 520, the synchronizer receives a second set of symbols received during the synchronization attempt. In some examples, the received set of symbols includes more symbols than the first set of symbols corresponding to the expected synchronization symbol sequence. For example, the received symbols may include noise symbols. At operation 530, the synchronizer creates a set of two or more vectors, each vector having a length corresponding to the length of the vector including the first set of symbols corresponding to the expected synchronization symbol sequence, and each vector including a different ordered combination of the received set of symbols. Different ordered combinations of the received set of symbols that are in the same order as the symbols are received. For example, if the received set of symbols is an encoding of the string {p,#,a,r,s,s} and the expected synchronization symbol sequence is an encoding of the string {p,a,s,s}, a set of vectors of length 4 is created. In this example, the system will create a vector for each ordered combination of 4 characters in the received set of symbols.

[0045] Ordered means that the symbols in the vector maintain the order of the symbols in the received symbols relative to each other. In other words, if the symbol "p" is the first character in the second set of symbols, and if the character "p" is in one of the created vectors (not skipped), then "p" will always be the first in the vector symbols. Continuing with the example of the second set of symbols {p, #, a, r, s, s} - the "a" character in the vector will be the first (if "p" is not in the vector) or the second (if "p" is in the vector) in the synchronization symbol sequence symbol. Therefore, in the above example, the following are valid vectors:

[0046] 1.p#ar

[0047] 2. #ars

[0048] 3.arss

[0049] 4.pars

[0050] 5.prss

[0051] 6.p#rs

[0052] 7.pass

[0053] 8. #rss

[0054] 9. #ass

[0055] 10.p#as

[0056] 11.p#ss

[0057] At operation 540, the synchronizer may determine a set of distances between each respective vector and an ordered vector comprising a first set of symbols corresponding to the expected synchronization symbol sequence. As previously described, the set of distances may be determined by one or more distance metrics, such as: a Levenshtein distance; a simple point sum that adds or subtracts points based on the differences in the symbols; or a statistical correlation. For example, a system utilizing a point value system may add a value of 1 to the score of symbol positions that do not match, and add a value of 0 to the score of symbol positions that match the expected synchronization symbol sequence. In the above example, using this simple distance metric, the distances would be: {3, 2, 2, 1, 1, 2, 0, 2, 2}. In other examples, the vectors may simply be compared to the expected synchronization symbol sequence to determine if a match exists. In yet additional examples, the distance metric may be a statistical correlation.

[0058] At operation 550, the system may select a vector from the set of vectors based on a distance from the set of distances. For example, the system may select the vector with the shortest distance from the vector of the expected synchronization symbol sequence. In the above example, the vector "pass" has a distance of "0" and may therefore be selected.

[0059] At operation 560, the system may perform one or more synchronization actions based on a comparison of the value corresponding to the selected vector with a threshold value. For example, if the value corresponding to the selected vector is a distance metric, and the distance to the first set of symbols is closer than a threshold distance, the system may perform a synchronization action. Example synchronization actions include waking the device from a low power state, starting to store data, aligning to a symbol boundary, etc.

[0060] Forced insertion of noise symbols

[0061] As previously described, in some examples, the system can enforce the use of noise symbols within the stored synchronization sequence symbols. This can prevent the transmitting device from sending synchronization sequence symbols without the additional protection against eavesdropping provided by noise symbols. If the received symbol does not include a noise symbol, the synchronizer can reject the synchronization attempt. In some examples, only a single noise symbol may be required, while in other examples, a threshold number of noise symbols may be required. In some examples, the system can combine an upper limit on the length of the received symbol with forced symbol insertion so that the device must include a number of symbols that fall within a minimum and maximum number of symbols.

[0062] In some examples, to prevent devices from simply repeating symbols of a synchronization sequence, the system may require that noise symbols be symbols that are not present in the synchronization symbol sequence. Thus, if the synchronization symbol sequence is an encoding of the string "pass", the noise symbols must be symbols other than the encoded characters of "p", "a", "s", "s". If the noise symbols include symbols from the synchronization symbol sequence, synchronization may fail. In some other examples, some repeated symbols from the synchronization symbol sequence may be allowed, however, a difference metric may be calculated by the receiver that quantifies how different the expected synchronization symbol sequence is from the received symbols. A minimum difference value may be required for synchronization to succeed.

[0063] Figure 6A flow chart of a method 600 for synchronizing a device using forced symbol insertion is illustrated according to some examples of the present disclosure. At operation 610, the synchronizer identifies a first set of symbols corresponding to an expected synchronization symbol sequence. As used herein, a symbol is a unit of data, such as a character, word, byte, or other data group. At operation 620, the synchronizer receives a second set of symbols (e.g., symbols) to be compared with the expected synchronization symbol sequence, the second set of symbols including more symbols than the first set of symbols (e.g., noise symbols).

[0064] At operation 630, the synchronizer determines whether the second set of symbols includes a first subset of symbols corresponding to the expected synchronization symbol sequence. If the second set of symbols does not include the expected synchronization symbol sequence, the computing device may continue searching for a synchronization symbol sequence at operation 660. If the second set of symbols includes the expected synchronization symbol sequence, processing moves to operation 640. In some examples, to determine whether the second set of symbols includes the expected synchronization symbol sequence, the second set of symbols may be decomposed into a set of ordered vector combinations of a second set of values ​​of size m, where m is the number of symbols in the expected synchronization symbol sequence. The vectors reflect each of the possible ordered length-m combinations of received symbols. A distance metric may be calculated for each of the vectors, measuring the distance between the expected synchronization symbol sequence and each vector. Determining whether the second set of symbols includes the expected synchronization symbol sequence may be based on the distance metrics and whether at least one of the distance metrics is within a threshold distance of the expected synchronization symbol sequence.

[0065] At operation 640, the synchronizer determines whether the second set of symbols includes a second subset of unspecified (e.g., noise) symbols at one or more unspecified positions within the second set of symbols. For example, the synchronizer determines whether to add noise symbols to the synchronization symbol sequence. In some examples, the synchronizer can ensure that the additional symbols sent are interleaved with the expected synchronization symbol sequence to ensure that the device is secure from eavesdropping attacks. If no additional noise symbols are added, then at operation 660, the device can continue searching for the synchronization symbol sequence. Otherwise, at operation 650, a synchronization action can be performed.

[0066] It should be noted that the synchronizer does not need to specify where to place the noise symbols and what the noise symbols are for any synchronization attempt. This protects the synchronization symbol sequence by preventing eavesdropping on these locations. In some examples, it may be necessary to insert a specific number of noise symbols. In some examples, the noise symbols may need to be distributed throughout the synchronization symbol sequence in order to meet a threshold metric for dispersion. In some examples, it may be determined based on the ordered vector determined at operation 630 whether the second set of symbols includes the second subset of unassigned symbols of operation 640. For example, if the ordered vector with the closest distance metric to the expected synchronization symbol sequence is formed by skipping the minimum number of symbols, it may be determined that the second set of symbols includes the second subset of unassigned symbols.

[0067] Forced symbol distribution

[0068] The synchronizer on the receiving computing device can require that the dispersion metric of the positions of noise symbols in the received synchronization symbol sequence be above a specified threshold to ensure that the noise symbols are properly distributed throughout the synchronization symbol sequence. This prevents devices from simply stuffing noise symbols before, after, or in one place in the synchronization symbol sequence. By enforcing a certain level of distribution, it is more difficult for an adversary to determine which symbols are noise symbols, even if they manage to intercept multiple synchronization attempts. In some examples, the system can also specify that the dispersion metric be below a specified threshold to ensure that a perfect distribution of noise symbols throughout the synchronization symbol sequence is also avoided, as a perfect distribution can also be easily cracked by an eavesdropper. The system may want to obtain the appearance of a random distribution of noise symbols in the synchronization symbol sequence by requiring the dispersion metric to be within a specific range.

[0069] In some examples, the system may also store a history of the calculated dispersion metrics for past synchronization attempts within a specified number of synchronizations or a specified time period. The system may require that the dispersion metrics change over time so that synchronization attempts where the dispersion metrics of the received symbols are identical or similar to each other (e.g., within a threshold number) may be rejected. This may assist in monitoring the randomness of the distribution of the noise symbols. In some examples, the system may statistically analyze the dispersion metrics of the transmission device for past synchronization attempts. An exemplary statistical analysis includes calculating the standard deviation of the dispersion metrics. If the standard deviation is below a threshold, the system may adjust the target range of the dispersion metrics to move the standard deviation toward the threshold. In this way, the system monitors the distribution of noise symbols in the synchronization symbol sequence symbols over time to better achieve random appearance.

[0070] The present disclosure thus addresses the technical problem of providing secure synchronization using a secure synchronization symbol sequence that is resistant to man-in-the-middle attacks. By enforcing a well-defined distribution of noise symbols, the system can ensure that devices comply with the security enhancements of the present disclosure by ensuring that the synchronization symbol sequence is not easily deciphered from received symbols. For example, the system can ensure that the noise symbols appear randomly, rather than following a discernible pattern.

[0071] Figure 7 A flow chart of a method 700 for synchronizing devices using a dispersion standard metric according to some examples of the present disclosure is illustrated. At operation 710, the synchronizer identifies a first set of symbols corresponding to an expected synchronization symbol sequence, such as a synchronization symbol sequence. At operation 720, the synchronizer receives a second set of symbols to be compared with the expected synchronization symbol sequence, the second set of symbols including more symbols than the first set of symbols. For example, the symbols may be received synchronization symbol sequence symbols.

[0072] At operation 730, the synchronizer determines whether the second set of symbols includes a first subset of symbols corresponding to the expected synchronization symbol sequence. For example, the synchronizer determines whether the second set of symbols includes the expected synchronization symbol sequence (e.g., a synchronization symbol sequence). If the second set of symbols does not include the expected synchronization symbol sequence, the computing device may continue searching for a synchronization symbol sequence at operation 760. If the second set of symbols includes the expected synchronization symbol sequence, processing moves to operation 740. In some examples, to determine whether the second set of symbols includes the expected synchronization symbol sequence, the second set of symbols may be decomposed into a set of ordered vector combinations of size m of the second set of symbols, where m is the number of symbols in the expected synchronization symbol sequence. The vectors reflect each of the possible ordered length m combinations of the received symbols. A distance metric may be calculated for each of the vectors, measuring the distance between the expected synchronization symbol sequence and each vector. Determining whether the second set of symbols includes the expected synchronization symbol sequence may be based on the distance metrics and whether at least one of the distance metrics is within a threshold distance of the expected synchronization symbol sequence.

[0073] At operation 740, the synchronizer determines whether the second set of symbols includes a second subset of unspecified symbols at one or more unspecified positions within the second set of symbols. For example, the synchronizer determines whether to add noise symbols to the synchronization symbol sequence number. In some examples, the synchronizer can ensure that additional symbols are input to ensure that the device is secure from man-in-the-middle attacks. If no additional noise symbols are added, then at operation 760, the device continues to search for a synchronization symbol sequence. Otherwise, processing can continue at operation 745. In some examples, the transmitting device does not specify where to place noise symbols and what the noise symbols are for any synchronization attempt. In other examples, the transmitting device specifies where to place noise symbols and / or what the noise symbols are.

[0074] At operation 745, the system may determine whether a dispersion metric of the first set within the second set of symbols or corresponding positions of the second set of symbols within the first set of symbols is within a threshold range or otherwise satisfies one or more specified criteria. Thus, the system may (depending on the design) determine how the first set is distributed within the second set of symbols (e.g., how synchronization symbol sequences are distributed) or how the noise symbols are distributed within the second set of symbols.

[0075] An exemplary dispersion metric includes calculating the maximum distance between corresponding positions of successive symbols of the first set of symbols within the second set of symbols (or vice versa). For example, if the synchronization symbol sequence encodes the string "pass" and the received symbol encodes the string "p1a2s3s4", the dispersion metric will be 1. In these examples, the system may require a minimum dispersion metric—for example, the maximum distance between corresponding positions of successive symbols of the second subset of symbols within the second set of symbols is below a threshold. In other examples, the dispersion metric may be the average distance between corresponding positions of successive symbols of the first or second subset of symbols within the second set of symbols. In still other examples, the dispersion metric may be the variance of corresponding positions of the first or second set of symbols. In still other examples, the dispersion metric may be the standard deviation of corresponding positions of the first or second set of symbols.

[0076] In some examples, the threshold range for the dispersion metric can be an upper threshold, a lower threshold, or both an upper and lower threshold. The threshold can be specified or derived. For example, the threshold can be derived based on the length of the synchronization symbol sequence. For example, a higher level of dispersion may be required for shorter synchronization symbol sequences (to improve security) than for longer synchronization symbol sequences, or vice versa. In some examples, both the upper and lower limits ensure that the noise symbols are noisy—that is, they do not conform to an easily cracked pattern. For example, a scenario where the synchronization symbol sequence is an encoding of the string "pass" and the second set of received symbols is an encoding of "pla2s3s4" may not be as secure as a scenario where the second set of received symbols is an encoding of "pl2as22s" because the insertion of noise symbols every other symbol in the former may be more predictable than the more random insertion in the latter. By requiring dispersion above a minimum value, but not perfect dispersion, the system can require greater randomness.

[0077] If, at operation 745, the dispersion metric is not within the threshold range, the device may continue searching for a synchronization symbol sequence at operation 760. If, at operation 745, the dispersion metric is within the threshold range, at operation 750, the computing device may perform one or more synchronization actions as described elsewhere herein.

[0078] In an example, a measure of the spread of noise symbols in the synchronization symbol sequence within the set of input symbols can be determined by creating a set of vectors of received symbols. The set of vectors can be generated as described herein, such as described with respect to operation 730. Distance metrics from one or more vectors in the set of vectors to the vectors of the synchronization symbol sequence can be compared. In an example, an average, median, or total vector distance can be evaluated and compared to a threshold. When the average, median, or total distance violates the threshold, it can be determined that the set of input symbols has sufficiently large spread. In another example, a subset of the set of vectors can be used (e.g., only vectors between two thresholds, such as a "near" threshold and a "far" threshold), and the subset can be required to have a minimum number of vectors.

[0079] In another example, a subset of the vectors can be generated by obtaining consecutive ordered symbols with a total length equal to the synchronization symbol sequence (without skipping symbols). For example, the synchronization symbol sequence can be an encoding of the string "pass", and the received symbols can be an encoding of the string "p#arss", which is an example of overall sufficient noise dispersion. In this example, the set of vectors can be constructed as "p#ar", "#ars", and "arss". None of these vectors are particularly close to "pass" in terms of distance. An example of an input symbol with insufficient dispersion would be "#rpass". In this example, the set of vectors can include "#rpa", "#rpa", and "pass". These vectors are closer in distance to the synchronization symbol sequence (including the synchronization symbol sequence itself), so that it can be determined that the input symbols have insufficient dispersion.

[0080] Figure 8 Illustrated is a diagram of a synchronized data stream 800 with additional unassigned noise symbols, according to some examples of the present disclosure. Figure 8 Similar to Figure 3 , just in Figure 8 In the embodiment of the present invention, the synchronizer 827 includes a dispersion checker 837. The dispersion checker 837 can calculate a dispersion metric that quantifies how well the intentionally inserted noise symbols 320 are distributed within the received symbols 325 (or how well the synchronization symbol sequence is distributed within the received symbols 325). The dispersion checker 837 can be included in the synchronizer 827, which can be as shown in FIG. Figure 1 1. An embodiment of the synchronizer 120 in the transmitting computing device 110 and / or the synchronizer 135 in the receiving computing device 112 is shown in FIG.

[0081] The dispersion checker 837 can calculate the dispersion of the noise symbol 320 within the total received symbols 325 or the synchronization symbol sequences 312, 314, and 316 within the received symbols 325. As previously described, exemplary dispersion metrics include calculating the maximum or average distance, variance, standard deviation, etc. between synchronization symbol sequences or noise symbols.

[0082] The scatter checker 837 can compare the calculated scatter to determine whether the scatter metric meets one or more specified criteria. For example, the criterion can be whether the scatter metric is above a first threshold. In other examples, the criterion can be whether the scatter metric is below a second threshold. In still other examples, the criterion can be whether the scatter metric is both above the first threshold and below the second threshold (and therefore within a desired range). If the result is that the scatter metric of the received symbol 325 meets the criterion, then processing continues with vector creation using the vector creator 330. If the scatter metric does not meet the criterion, then the match determination logic unit 340 can determine that synchronization has failed or that the search for the synchronization symbol sequence should continue. Figure 8 The rest of Figure 3 Described in .

[0083] Preventing copying of input

[0084] In some examples, a malicious person can utilize a replay attack whereby a received symbol sequence is captured as it travels across the network from the transmitting computing device 110 to the receiving computing device 112, and later "replays" it in its entirety, including the noise symbols. To prevent this, in some examples, the system can take steps to detect and reject synchronization attempts that are identical or similar to past synchronization attempts.

[0085] For example, the synchronizer may store received symbols for a plurality of past synchronization attempts. When a new synchronization attempt is made, the newly received symbols are compared with the stored received symbols for the past synchronization attempts. If the newly received symbols for the current synchronization attempt match one of the stored received symbol sequences for the past synchronization attempts or are within a specified threshold level of similarity (to prevent simple changes), the system may not synchronize. The system may store received symbols for a plurality of past synchronization attempts for a specified time period (e.g., the previous day, previous week, previous month, etc.), a specified number of synchronization attempts, etc.

[0086] In other examples, rather than storing previously received symbols, the system can store one or more distance metrics or dispersion metrics of past synchronization attempts. For example, the system can store the two or three closest distance metrics for each synchronization attempt. If one or more distance metrics and / or dispersion metrics of the current synchronization attempt are within a threshold difference of one or more distance metrics and / or dispersion metrics of the past synchronization attempt, the current synchronization attempt can be rejected. By storing distance metrics or dispersion metrics instead of received symbols, the system can reduce the amount of storage required to prevent replay attacks.

[0087] Partial sequence subset

[0088] In some examples, an eavesdropper may be able to access synchronization communications across multiple synchronization attempts. For example, using a man-in-the-middle attack, an attacker may be able to distinguish synchronization symbol sequences by detecting common symbols across multiple synchronization attempts. Even if the system forces a random distribution of noise symbols in the synchronization symbol sequence, sophisticated algorithms can find patterns in the captured data.

[0089] To prevent this, the system may utilize a subset of synchronization symbol sequences. For example, the synchronization symbol sequence may have a value of "123456789" and the device may synchronize to "123," "4567," "6789," and so on. In some systems where the synchronization symbol sequence is "123456789," other combinations may be used, such as "1345" or "1678" (e.g., the same order of symbols as in "123456789," but not necessarily sequentially). In some examples, the system may require the transmitting device to use a different subset of synchronization symbol sequences for each synchronization attempt. This makes it more difficult for an eavesdropper to observe the synchronization symbol sequence by detecting common symbols (e.g., symbols) across multiple synchronization attempts. In an example, different subsets of synchronization symbol sequences may be repeated after a number of times of non-use or a period of time (e.g., after 20 different subsets, the first subset entered may be repeated, or after six months, an already entered subset may be repeated).

[0090] The system may enforce minimum and / or maximum subset lengths (e.g., the subset meets a minimum number of symbols, a minimum percentage of the total synchronization symbol sequence, etc.). The system may enforce the rule that the same subset may only be used a specified number of times within a specified number of synchronization attempts (or a specified time period). For example, the same synchronization symbol sequence subset may only be used twice within ten synchronization attempts. In some examples, the subset may be required to consist of consecutive symbols, but in other examples, skipping symbols may be allowed. In some examples, the subsets must be ordered. That is, if the synchronization symbol sequence is "123456", the subset "13456" is a valid subset, but "6543" is not.

[0091] The present disclosure therefore addresses the technical problem of providing secure synchronization using a secure synchronization symbol sequence that is resistant to man-in-the-middle and replay attacks. This is achieved by introducing purposefully introduced random noise symbols. The synchronization device decomposes the received symbols into multiple vectors and uses a distance metric to determine whether synchronization has been achieved. By utilizing a subset of the synchronization symbol sequence in addition to the noise symbols, the system makes it more difficult for an attacker who is eavesdropping on the device to determine the synchronization symbol sequence.

[0092] Figure 9 FIGURE 9 illustrates a diagram of a data stream 900 with an additional unspecified noise symbol and a synchronization attempt with a subset of a mandatory synchronization symbol sequence according to some examples of the present disclosure. The synchronization symbol sequence 910 may include six symbols in the form of symbols P1-P6. Figure 13 In the example of , the device has selected P2, P3, and P4 as the subset synchronization symbol sequence 915. When transmitting the synchronization symbol sequence, the device adds one or more noise symbols 320 (eg, symbols) to the subset. Figure 9 In the example shown in , only one noise symbol 320 is added for ease of description. The received symbol 925 includes the subset synchronization symbol sequence 915, along with one or more noise symbols 320 interspersed into the synchronization symbol sequence symbols.

[0093] The synchronizer 927 includes a subset creator 940 that identifies a plurality of ordered vectors (referred to as synchronization symbol sequence subset vectors) that comprise an ordered subset of the expected synchronization symbol sequence 950. In an example where a subset must have a minimum number of symbols, the subset creator 940 creates synchronization symbol sequence subset vectors of a minimum size and larger (up to the size of the expected synchronization symbol sequence 950 or the maximum subset size). For example, if the minimum size is five symbols, then each vector of the synchronization symbol sequence subset vectors is five or more symbols, and the synchronization symbol sequence subset vectors comprise the set of all possible subsets of five or more symbols of the expected synchronization symbol sequence 950 (optionally a strict subset, e.g., not including the entire expected synchronization symbol sequence 950).

[0094] The check vector creator 930 receives the received symbols 925 and creates a plurality of sets of vectors from the received symbols 925, each set having a length corresponding to the length of the synchronization symbol sequence subset vector created by the subset creator 940. These vectors may be referred to as "check vectors". The plurality of check vectors reflect each of the possible ordered combinations of length m of the received symbols, where m is the valid subset length of the expected synchronization symbol sequence. The order of the symbols in each of the check vectors is the same order as the order of the synchronization symbol sequence in the received symbols 925. As shown in Figure 9As shown in , m is a vector of lengths three, four, and five. A vector of length three is all possible ordered combinations of received symbols 925 of length three. A vector of length four is all possible ordered combinations of received symbols 925 of length four. A vector of length five is all possible ordered combinations of received symbols 925 of length five, and so on. In other examples, m can be a different length. For example, a device can send a synchronization symbol sequence length along with received symbols 925. A check vector can be created with a length between the minimum subset length and the maximum subset length.

[0095] The check vector and the synchronization symbol sequence subset vector are passed to a distance metric calculator 935, which calculates the distance between each combination of the synchronization symbol sequence subset vectors and each check vector in the plurality of check vectors. In other examples, the distance metric calculator 935 calculates the distance between each combination of synchronization symbol sequence subset vectors of the same size and each check vector in the plurality of check vectors. For example, a check vector of length five may be compared to a synchronization symbol sequence subset vector of length five.

[0096] In some examples, the distance metric may be a Levenshtein distance. In other examples, the distance metric may compare each symbol in each check vector with the corresponding symbol in each synchronization symbol sequence subset vector. If the symbols match, then the score may not be incremented. If the symbols do not match, the score may be incremented. In other examples, a higher score reflects a better match, and thus, a matching symbol may result in an incremented score, while a mismatched symbol may result in an unchanged score or an incremented score. In yet other examples, the distance metric may be a correlation, such as the Pearson correlation coefficient.

[0097] The distance metric is then passed to the match determination logic unit 340. In some examples, the match determination logic unit 340 identifies the distance metric that represents the closest match (e.g., the smallest distance) between the check vector and one of the synchronization symbol sequence subset vectors. Depending on the desired implementation, this can be the highest score (in the case of assigning a score to the match) or the lowest score. If the distance metric representing the closest match is closer to one of the synchronization symbol sequence subset vectors than a threshold (e.g., the distance is less than the threshold), the match determination logic unit 340 can return: match found. In other examples, the match determination logic unit identifies two distance metrics that represent the two closest matches to the synchronization symbol sequence subset vectors (e.g., the smallest distance and the second smallest distance). The match determination logic unit 340 can then obtain the ratio of the two distance metrics and compare it to the threshold to determine whether a match exists. If the match determination logic unit determines that a match has been found, the synchronization control 345 can then perform one or more synchronization actions.

[0098] In some examples, the check vector creator 930 can verify that the received symbols 925 include a subset, but not the entire expected synchronization symbol sequence 950. For example, the check vector creator 930 can determine a count of the number of symbols in the received symbols that sequentially match symbols from the synchronization symbol sequence. In some examples, the check vector creator 930 can ensure that this is within an acceptable range. For example, the check vector creator 930 can compare this number of symbols to a minimum threshold (to ensure a minimum subset size) and a maximum threshold (to ensure that the subset is not too close to the entire synchronization symbol sequence). If the number of symbols is within the range, the check vector creator 930 can determine that synchronization is proceeding. If the number of symbols is not within the range, the check vector creator 930 can cause synchronization to fail.

[0099] In some examples, the presence of a subset (rather than the entire synchronization symbol sequence) can be determined by verifying that the check vector with the closest distance metric to any synchronization symbol sequence subset vector is within a desired threshold distance range from the entire expected synchronization symbol sequence 950. The range can achieve a minimum proximity and a maximum proximity. This ensures that the subset is complete enough to constitute synchronization, but is not the entire (or nearly the entire) synchronization symbol sequence. In some examples, the minimum subset length can increase as the synchronization symbol sequence length increases, up to a defined maximum value, at which longer synchronization symbol sequence lengths do not increase the minimum subset length.

[0100] In yet another example, the ratio of the distance of the vector with the closest distance to the distance of the vector with the next closest distance can be compared to a minimum threshold. In this example, the system can also apply a maximum threshold to the distance of the vector with the closest distance. In this example, a mixture of thresholds is used to enforce minimum and maximum values, where the minimum threshold is used for the ratio and the maximum threshold is used for the distance itself.

[0101] In some examples, the check vector creator 930 can enforce a repeated input constraint, thereby comparing the transmitted subsets of the synchronization symbol sequence across synchronization attempts to determine whether the transmitting device is frequently (e.g., above a threshold occurrence rate) utilizing the same subset. If the transmitting device's use of a particular subset violates the threshold occurrence rate, the synchronizer 927 can reject the synchronization attempt. In some examples, the occurrence rate can be defined as the number of uses within a specified amount of time (e.g., the past day, week, month) or as a specified number of synchronization attempts.

[0102] In some examples, the threshold frequency can be based on the length of the expected synchronization symbol sequence 950. For example, depending on the length of the expected synchronization symbol sequence 950, there may only be x valid subsets with a minimum length of 1. In some examples, the threshold frequency can be set based on x, such as x divided by 2, or x, or x—a configurable or specified margin.

[0103] In some examples, in addition to enforcing the different subsets requirement, the check vector creator 930 may enforce the requirement that the noise symbols 320 may be different or interspersed in different positions of the input synchronization symbol sequence 910 across multiple synchronization attempts.

[0104] Figure 10 A flow chart illustrating a method 1000 for synchronizing devices using a subset of synchronization symbol sequences according to some examples of the present disclosure is shown. At operation 1010, the synchronizer identifies a first set of symbols corresponding to an expected synchronization symbol sequence, such as a synchronization symbol sequence. At operation 1020, the synchronizer receives a second set of symbols to be compared with the expected synchronization symbol sequence. The second set of symbols may include more symbols than the first set of symbols. For example, the symbols may be input synchronization symbol sequence symbols.

[0105] At operation 1025, the synchronizer may determine whether any subset of the second set of symbols corresponds to a symbol of the expected synchronization symbol sequence. For example, the synchronizer may determine a plurality of ordered vectors (synchronization symbol sequence subset vectors) comprising ordered subsets of all possible lengths of the expected synchronization symbol sequence greater than a minimum subset length. For example, if the expected synchronization symbol sequence is an encoding of the string "password" and the minimum subset length is three (in some examples, skipping symbols is not allowed, but other examples allow skipping, such as "pwd" in this example), the synchronization symbol sequence subset vector will be all possible ordered subsets of three, four, five, six, seven, and eight symbols. In some examples, a maximum subset size may also be specified. In these examples, the synchronization symbol sequence subset vector may be limited to a maximum size to enforce the requirement that the input synchronization symbol sequence is a subset (rather than the entire synchronization symbol sequence). The maximum size may be specified (e.g., by an administrator) or may be calculated based on the size of the synchronization symbol sequence. In the above example where the synchronization symbol sequence is an encoding of the string "password", if the maximum subset size limit is six, then the synchronization symbol sequence subset vector will be all possible ordered subsets of three, four, five, and six symbols (examples are shown below, with skipping prevented for ease of readability):

[0106] 3:pas; ass; ssw; swo; wor; ord;

[0107] 4: pass; assw; sswo; swor; word;

[0108] 5:passw;asswo;sswor;sword;

[0109] 6:passwo;asswor;ssword;

[0110] The synchronizer then creates a plurality of vectors (check vectors) from the second set of symbols, each of which has a length corresponding to the length of a corresponding synchronization symbol sequence subset vector. The check vectors reflect each possible ordered combination of the length of the second set of symbols and the length of the corresponding synchronization symbol sequence subset vector. For example, if there are four sets of synchronization symbol sequence subset vectors, with corresponding lengths of 3, 4, 5, and 6 symbols, a first plurality of check vectors is created using all possible three-symbol-long ordered combinations of the second set of symbols; a second plurality of check vectors is created using all possible four-symbol-long ordered combinations of the second set of symbols; a third plurality of check vectors is created using all possible five-symbol-long ordered combinations of the second set of symbols; and a fourth plurality of check vectors is created using all possible six-symbol-long ordered combinations of the second set of symbols. Ordered means that the order of the symbols in each of the check vectors is the same order as the order of the symbols in the second set of symbols.

[0111] In some examples, a distance is calculated between each synchronization symbol sequence subset vector of a specific length and each of a plurality of check vectors of the same specific length. This distance quantifies the difference between each check vector and each synchronization symbol sequence subset vector. In other examples, a distance is calculated between each combination of synchronization symbol sequence subset vectors (regardless of size) and each of the plurality of check vectors.

[0112] The synchronizer then determines whether the second set of symbols includes a first subset of symbols that matches a portion of the expected synchronization symbol sequence. For example, the synchronizer determines whether the second set of symbols includes a subset of the expected synchronization symbol sequence (e.g., a synchronization symbol sequence). In some examples, to determine whether the second set of symbols includes a first subset that matches a portion of the expected synchronization symbol sequence, the system may utilize a distance metric, and whether at least one of the distance metrics is within a threshold distance of the synchronization symbol sequence subset vector. If the second set of symbols does not include the subset of the expected synchronization symbol sequence, at operation 1060, the device may continue to search for a synchronization symbol sequence—e.g., in additional packets or in a new portion or partition of the bitstream. If the second set of symbols includes a subset of the expected synchronization symbol sequence, processing moves to operation 1040.

[0113] At operation 1040, the synchronizer determines whether the second set of symbols includes a second subset of unspecified symbols at one or more unspecified positions within the second set of symbols. For example, the synchronizer determines whether to add noise symbols to the synchronization symbol sequence. In some examples, the synchronizer can ensure that additional symbols are input to ensure that the synchronization sequence symbols are safe from eavesdropping attacks. If there are no additional noise symbols added, then at operation 1060, the device can continue to search for a synchronization symbol sequence (because the current synchronization attempt has failed). Otherwise, one or more synchronization actions or operations can be performed at operation 1050. It should be noted that the synchronizer does not specify where to place noise symbols and what noise symbols are for any synchronization attempt. This protects the device by preventing eavesdropping on these positions.

[0114] Figure 11 A flow chart of a method 1100 for synchronizing a device according to some examples of the present disclosure is illustrated. At operation 1110, the synchronizer may receive a set of symbols as part of a synchronization attempt. At operation 1120, the synchronizer determines that any subset of the set of received symbols does not exactly match an expected synchronization symbol sequence. This ensures that the input synchronization symbol sequence is a subset rather than the entire synchronization symbol sequence. If a subset of the received set of symbols does exactly match the expected synchronization symbol sequence, synchronization may fail in some examples.

[0115] At operation 1130, the synchronizer may identify an ordered vector (e.g., a synchronization symbol sequence subset vector) that includes an ordered subset of the expected synchronization symbol sequence and has a length less than the length of the expected synchronization symbol sequence. At operation 1140, the synchronizer creates a plurality of check vectors of lengths corresponding to the lengths of the synchronization symbol sequence subset vector. At operation 1150, the synchronizer may determine a set of distances between the plurality of check vectors and the synchronization symbol sequence subset vector. As mentioned, in some examples, the set of distances includes the distance between each combination of check vectors and the synchronization symbol sequence subset vector, but in other examples, the set of distances includes only the distances between check vectors and synchronization symbol sequence subset vectors of the same size (e.g., a check vector of size z and a synchronization symbol sequence subset vector of size z).

[0116] At operation 1160, the synchronizer may select a check vector corresponding to the minimum distance. At operation 1170, the synchronizer may cause a synchronization action to be performed based on a comparison of a value corresponding to the selected vector with a threshold value. For example, the minimum distance value corresponding to the selected vector and the threshold value. In other examples, the ratio of the minimum distance corresponding to the selected vector to a second minimum distance corresponding to the selected vector or a second check vector may be compared to a threshold value.

[0117] Figure 12 An example of a method 1200 for transmitting a synchronization sequence according to some examples of the present disclosure is illustrated. Figure 12 The method may be performed by a transmitting computing device and include intentionally adding noise symbols. At operation 1210, the computing device may determine a set of symbols. For example, the computing device may retrieve the expected synchronization symbol sequence from a storage device, from a memory, etc. In some examples, the computing device may determine the synchronization sequence at operation 1210, for example, from one or more of the transmitting and receiving device identifiers. In examples where a subset of stored synchronization sequences is used, the transmitter may determine the subset of stored synchronization sequences. In some examples, if the receiver prohibits repeating a subset, the transmitter may store one or more indicators of past subsets sent.

[0118] At operation 1220, the transmission computing device may interleave one or more noise symbols N to generate a sequence for transmission. In some examples where the system utilizes a dispersion requirement, the transmission device may interleave one or more of the noise symbols to meet the dispersion metric requirement. In examples where the system prohibits repeated noise symbols or repeated scattered symbols, the transmission device may store one or more indications of past noise symbols or past dispersion metrics to ensure that synchronization is not rejected. Additionally, the transmission device may ensure that any other requirements described herein have been met.

[0119] At operation 1230, the transmitting device may transmit a transmission sequence including both the synchronization symbol determined at operation 1210 and the noise symbol determined at operation 1220. In some examples, this transmission may be part of a data transmission. In other examples, the synchronization transmission may wake the receiving device from a low-power state. In some examples, the transmitting device may send and / or receive data to the receiving device after successful synchronization.

[0120] In some examples, the various features described above may be implemented individually or in combination. For example, the system may require noise symbols, enforce a maximum number of total symbols, require subsets, require a distribution of noise symbols within a scatter metric, and require that received symbols be non-repeating. In other examples, only certain features may be implemented, and other features may not be implemented. In still other examples, the implemented features and requirements may be configurable by an end user, administrator, system designer, etc. Additionally, in the various flow charts, the order of operations may be exemplary. For example, in Figure 4 In the example, operations 1025 and 1040 may be performed in any order depending on the implementation. This is merely an example, as other flow charts may be reordered depending on the desired implementation. As used herein, an IoT device is a non-standard computing device that connects to a network and transmits and / or receives data. Examples may include smart TVs, smart appliances, smart thermostats, smart controllers, supervisory control and data acquisition (SCADA) equipment, smart home devices, and the like.

[0121] Figure 13 A block diagram of an exemplary machine 1300 is illustrated that can implement one or more of the techniques (e.g., methods) discussed herein, according to some examples of the present disclosure. In alternative embodiments, the machine 1300 can operate as a standalone device or can be connected (e.g., networked) to other machines. In a networked deployment, the machine 1300 can operate in the capacity of a server machine, a client machine, or both in a server-client network environment. The machine 1300 can implement a transmitting computing device 110, a receiving computing device 112, a transmitting computing device, a receiving computing device, and the like. For example, the machine 1300 can be configured to include Figure 3 、 8 and 9. The machine 1300 may be configured to perform Figure 4-7and 10-12. In an example, machine 1300 can act as a peer machine in a peer-to-peer (P2P) (or other distributed) network environment. Machine 1300 can be a user device, a remote device, a second remote device, or other device, and can take the form of a personal computer (PC), a tablet PC, a set-top box (STB), a personal digital assistant (PDA), a mobile phone, a smart phone, a web appliance, a network router, a switch or bridge, or any machine capable of executing instructions (sequential or otherwise) that specify actions to be taken by the machine. In addition, although only a single machine is shown, the term "machine" will also be used to include any collection of machines that individually or collectively execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein, such as cloud computing, software as a service (SaaS), and other computer cluster configurations.

[0122] Examples as described herein may include or may run on a logic unit or several components, modules or mechanisms (hereinafter referred to as "modules"). A module is a tangible entity (e.g., hardware) that can perform specified operations and that can be configured or arranged in a particular manner. In an example, a circuit may be arranged as a module (e.g., arranged internally or arranged relative to an internal entity such as other circuits) in a specified manner. In an example, all or part of one or more computer systems (e.g., independent client or server computer systems) or one or more hardware processors may be configured by firmware or software (e.g., instructions, application portions or applications) to operate as a module for performing specified operations. In an example, the software may reside on a machine-readable medium. In an example, the software, when run by the lower-level hardware of the module, causes the hardware to perform specified operations.

[0123] Accordingly, the term "module" is understood to encompass a tangible entity that is physically constructed, specifically configured (e.g., hardwired), or temporarily (temporarily) configured (e.g., programmed) to operate in a specified manner or to perform all or part of any of the operations described herein. Considering an example in which a module is temporarily configured, each of the modules may not be instantiated at any one time. For example, where the module comprises a general-purpose hardware processor configured using software, the general-purpose hardware processor may be configured as corresponding different modules at different times. The software may configure the hardware processor accordingly, such that, for example, a particular module is established at one instance in time and another different module is established at a different instance in time.

[0124] The machine (e.g., a computer system) 1300 may include a hardware processor 1302 (e.g., a central processing unit (CPU), a graphics processing unit (GPU), a hardware processor core, or any combination thereof), a main memory 1304, and a static memory 1306, some or all of which may communicate with each other via an interconnection link (e.g., a bus) 1308. The machine 1300 may also include a display unit 1310, an alphanumeric input device 1312 (e.g., a keyboard), and a user interface (UI) navigation device 1314 (e.g., a mouse). In an example, the display unit 1310, the input device 1312, and the UI navigation device 1314 may be a touch screen display. The machine 1300 may also include a storage device (e.g., a drive unit) 1316, a signal generating device 1318 (e.g., a speaker), a network interface device 1320, and one or more sensors 1321, such as a global positioning system (GPS) sensor, a compass, an accelerometer, or other sensors. The machine 1300 may include an output controller 1328, such as a serial (e.g., universal serial bus (USB)) connection, a parallel connection, or other wired or wireless (e.g., infrared (IR), near field communication (NFC), etc.) connection to communicate with or control one or more peripheral devices (e.g., a printer, a card reader, etc.).

[0125] The storage device 1316 may include a machine-readable medium 1322 on which is stored one or more sets of data structures or instructions 1324 (e.g., software) embodied or utilized by any one or more of the techniques or functionality described herein. The instructions 1324 may also reside, completely or at least partially, within the main memory 1304, within the static memory 1306, or within the hardware processor 1302 during execution of the instructions 1324 by the machine 1300. In an example, one or any combination of the hardware processor 1302, the main memory 1304, the static memory 1306, or the storage device 1316 may constitute a machine-readable medium.

[0126] Although the machine-readable medium 1322 is illustrated as a single medium, the term “machine-readable medium” may include a single medium or multiple media (eg, a centralized or distributed database, and / or associated caches and servers) configured to store one or more instructions 1324 .

[0127] The term "machine-readable medium" may include any medium that can store, encode, or carry instructions for execution by the machine 1300 and cause the machine 1300 to perform any one or more of the techniques of the present disclosure, or that can store, encode, or carry data structures used by or associated with such instructions. Non-limiting examples of machine-readable media may include solid-state memory and optical and magnetic media. Specific examples of machine-readable media may include: non-volatile memory, such as semiconductor memory devices (e.g., electrically programmable read-only memory (EPROM)), electrically erasable programmable read-only memory (EEPROM)), and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; random access memory (RAM); solid-state drives (SSD); and CD-ROM and DVD-ROM disks. In some examples, the machine-readable medium may be a non-transitory machine-readable medium. In some examples, the machine-readable medium may include a machine-readable medium that is not a transient propagation signal.

[0128] The instructions 1324 may also be transmitted or received via the network interface device 1320 using a transmission medium over the communication network 1326. The machine 1300 may communicate with one or more other machines using any of a variety of transmission protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Exemplary communication networks may include a local area network (LAN), a wide area network (WAN), a packet data network (e.g., the Internet), a mobile telephone network (e.g., a cellular network), a plain old telephone (POTS) network, and a wireless data network (e.g., the Institute of Electrical and Electronics Engineers (IEEE) 802.11 series, known as IEEE 802.16 series, known as ), IEEE 802.15.4 series of standards, Long Term Evolution (LTE) series of standards, Universal Mobile Telecommunications System (UMTS) series of standards, peer-to-peer (P2P) networks, etc. In an example, the network interface device 1320 may include one or more physical jacks (e.g., Ethernet, coaxial cable, or telephone jacks) or one or more antennas to connect to the communication network 1326. In an example, the network interface device 1320 may include multiple antennas to use at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technology for wireless communication. In some examples, the network interface device 1320 may use multi-user MIMO technology for wireless communication.

[0129] Non-limiting examples

[0130] Example 1 is a method for synchronization, the method comprising: using one or more hardware processors of a first device: identifying a first set of symbols corresponding to a synchronization sequence, the first set of symbols having a first number of symbols; receiving a second set of symbols from a second device via a signal channel, the second set of symbols including a second number of symbols, the second number being greater than the first number; comparing at least one subset of the second set of symbols with the first set of symbols to determine a comparison result, the at least one subset having the first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset; determining that the comparison result satisfies a specified condition; and performing an action corresponding to the synchronization sequence in response to determining that the comparison result satisfies the specified condition.

[0131] In Example 2, the subject matter of Example 1 includes, wherein the comparison result is an indication of whether a perfect match exists between the first set of symbols and the at least one subset of the second set of received symbols, and wherein determining that the comparison result satisfies a specified condition includes determining that the indication is a perfect match.

[0132] In Example 3, the subject matter of Examples 1-2 includes, wherein the comparison result is a correlation between the first set of symbols and the at least one subset of the second set of received symbols, and wherein determining that the comparison result satisfies a specified condition includes determining that the correlation is above a specified threshold.

[0133] In Example 4, the subject matter of Examples 1-3 includes, wherein executing the action corresponding to the synchronization sequence comprises waking the first device from a low power state.

[0134] In Example 5, the subject matter of Examples 1-4 includes, wherein performing the actions corresponding to the synchronization sequence comprises aligning symbol boundaries based on the at least one subset.

[0135] In Example 6, the subject matter of Examples 1-5 includes, wherein the comparison result is a distance metric, and wherein the method further comprises: comparing a second subset of the second set of received symbols with the first set of symbols to determine a second comparison result, the second subset having the first number of symbols; determining that the comparison result indicates a distance shorter than the second comparison result; and wherein determining that the comparison result satisfies a specified condition includes determining that the comparison result indicates a distance shorter than a specified threshold.

[0136] In Example 7, the subject matter of Examples 1-6 includes, wherein the at least one noise symbol is intentionally interspersed with the synchronization sequence in the second set of symbols by the second device.

[0137] In Example 8, the subject matter of Examples 1-7 includes, wherein the at least one noise symbol is interspersed with the synchronization sequence in the second set of symbols by the signal channel.

[0138] In Example 9, the subject matter of Examples 1-8 includes, wherein the method is performed by an Internet of Things (IoT) device.

[0139] Example 10 is a device capable of synchronization, the device comprising: a hardware processor; a memory storing instructions, the instructions, when executed by the hardware processor, causing the device to perform operations including: identifying a first set of symbols corresponding to a synchronization sequence, the first set of symbols having a first number of symbols; receiving a second set of symbols from a second device via a signal channel, the second set of symbols including a second number of symbols, the second number being greater than the first number; comparing at least one subset of the second set of symbols with the first set of symbols to determine a comparison result, the at least one subset having the first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset; determining that the comparison result satisfies a specified condition; and performing an action corresponding to the synchronization sequence in response to determining that the comparison result satisfies the specified condition.

[0140] In Example 11, the subject matter of Example 10 includes, wherein the comparison result is an indication of whether a perfect match exists between the first set of symbols and the at least one subset of the second set of received symbols, and wherein the operation of determining that the comparison result satisfies a specified condition includes determining that the indication is a perfect match.

[0141] In Example 12, the subject matter of Examples 10-11 includes, wherein the comparison result is a correlation between the first set of symbols and the at least one subset of the second set of received symbols, and wherein the operation of determining that the comparison result satisfies a specified condition includes determining that the correlation is above a specified threshold.

[0142] In Example 13, the subject matter of Examples 10-12 includes, wherein the operation of executing the action corresponding to the synchronization sequence comprises waking the device from a low power state.

[0143] In Example 14, the subject matter of Examples 10-13 includes, wherein the operation of executing the action corresponding to the synchronization sequence comprises aligning symbol boundaries based on the at least one subset.

[0144] In Example 15, the subject matter of Examples 10-14 includes, wherein the comparison result is a distance metric, and wherein the operation further comprises: comparing a second subset of the second set of received symbols with the first set of symbols to determine a second comparison result, the second subset having the first number of symbols; determining that the comparison result indicates a distance shorter than the second comparison result; and wherein determining that the comparison result satisfies a specified condition includes determining that the comparison result indicates a distance shorter than a specified threshold.

[0145] In Example 16, the subject matter of Examples 10-15 includes, wherein the at least one noise symbol is intentionally interspersed with the synchronization sequence in the second set of symbols by the second device.

[0146] In Example 17, the subject matter of Examples 10-16 includes, wherein the at least one noise symbol is interspersed with the synchronization sequence in the second set of symbols by the signal channel.

[0147] In Example 18, the subject matter of Examples 10-17 includes, wherein the device is an Internet of Things (IoT) device.

[0148] Example 19 is a machine-readable medium storing instructions that, when executed by a device, cause the device to perform operations including: identifying a first set of symbols corresponding to a synchronization sequence, the first set of symbols having a first number of symbols; receiving a second set of symbols from a second device via a signal channel, the second set of symbols including a second number of symbols, the second number being greater than the first number; comparing at least one subset of the second set of symbols with the first set of symbols to determine a comparison result, the at least one subset having the first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset; determining that the comparison result satisfies a specified condition; and performing an action corresponding to the synchronization sequence in response to determining that the comparison result satisfies the specified condition.

[0149] In Example 20, the subject matter of Example 19 includes, wherein the comparison result is an indication of whether a perfect match exists between the first set of symbols and the at least one subset of the second set of received symbols, and wherein the operation of determining that the comparison result satisfies a specified condition includes determining that the indication is a perfect match.

[0150] In Example 21, the subject matter of Examples 19-20 includes, wherein the comparison result is a correlation between the first set of symbols and the at least one subset of the second set of received symbols, and wherein the operation of determining that the comparison result satisfies a specified condition includes determining that the correlation is above a specified threshold.

[0151] In Example 22, the subject matter of Examples 19-21 includes, wherein the operation of executing the action corresponding to the synchronization sequence comprises waking the device from a low power state.

[0152] In Example 23, the subject matter of Examples 19-22 includes, wherein the operation of executing the action corresponding to the synchronization sequence comprises aligning symbol boundaries based on the at least one subset.

[0153] In Example 24, the subject matter of Examples 19-23 includes, wherein the comparison result is a distance metric, and wherein the operation further comprises: comparing a second subset of the second set of received symbols with the first set of symbols to determine a second comparison result, the second subset having the first number of symbols; determining that the comparison result indicates a distance shorter than the second comparison result; and wherein determining that the comparison result satisfies a specified condition includes determining that the comparison result indicates a distance shorter than a specified threshold.

[0154] In Example 25, the subject matter of Examples 19-24 includes, wherein the at least one noise symbol is intentionally interspersed with the synchronization sequence in the second set of symbols by the second device.

[0155] In Example 26, the subject matter of Examples 19-25 includes, wherein the at least one noise symbol is interspersed with the synchronization sequence in the second set of symbols by the signal channel.

[0156] In Example 27, the subject matter of Examples 19-26 includes, wherein the device is an Internet of Things (IoT) device.

[0157] Example 28 is a device for synchronization, the device comprising: a unit for identifying a first set of symbols corresponding to a synchronization sequence, the first set of symbols having a first number of symbols; a module for receiving a second set of symbols from a second device via a signal channel, the second set of symbols including a second number of symbols, the second number being greater than the first number; a module for comparing at least one subset of the second set of symbols with the first set of symbols to determine a comparison result, the at least one subset having the first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset; a module for determining that the comparison result satisfies a specified condition; and a module for executing an action corresponding to the synchronization sequence in response to determining that the comparison result satisfies the specified condition.

[0158] In Example 29, the subject matter of Example 28 includes, wherein the comparison result is an indication of whether a perfect match exists between the first set of symbols and the at least one subset of the second set of received symbols, and wherein the module for determining that the comparison result satisfies a specified condition includes a module for determining that the indication is a perfect match.

[0159] In Example 30, the subject matter of Examples 28-29 includes, wherein the comparison result is a correlation between the first set of symbols and the at least one subset of the second set of received symbols, and wherein the module for determining that the comparison result satisfies a specified condition includes a module for determining that the correlation is above a specified threshold.

[0160] In Example 31, the subject matter of Examples 28-30 includes, wherein executing the action corresponding to the synchronization sequence comprises waking the device from a low power state.

[0161] In Example 32, the subject matter of Examples 28-31 includes, wherein executing the action corresponding to the synchronization sequence comprises aligning symbol boundaries based on the at least one subset.

[0162] In Example 33, the subject matter of Examples 28-32 includes, wherein the comparison result is a distance metric, and wherein the device further comprises: a module for comparing a second subset of the second set of received symbols with the first set of symbols to determine a second comparison result, the second subset having the first number of symbols; a module for determining that the comparison result indicates a distance shorter than the second comparison result; and wherein the module for determining that the comparison result satisfies a specified condition includes a module for determining that the comparison result indicates a distance shorter than a specified threshold.

[0163] In Example 34, the subject matter of Examples 28-33 includes, wherein the at least one noise symbol is intentionally interspersed with the synchronization sequence in the second set of symbols by the second device.

[0164] In Example 35, the subject matter of Examples 28-34 includes, wherein the at least one noise symbol is interspersed with the synchronization sequence in the second set of symbols by the signal channel.

[0165] In Example 36, the subject matter of Examples 28-35 includes, wherein the device is an Internet of Things (IoT) device.

[0166] Example 37 is at least one machine-readable medium comprising instructions that, when executed by a processing circuit, cause the processing circuit to perform operations to implement any of Examples 1-36.

[0167] Example 38 is an apparatus comprising means for implementing any of Examples 1-36.

[0168] Example 39 is a system for implementing any one of Examples 1-36. Example 40 is a method for implementing any one of Examples 1-36.

Claims

1. A method for synchronization, the method comprising: Using one or more hardware processors of the first device: identifying a first set of symbols corresponding to a synchronization sequence, the first set of symbols having a first number of symbols; receiving a second set of symbols from a second device via a signal channel, the second set of symbols comprising a second number of symbols, the second number being greater than the first number; comparing at least one subset of the second set of symbols to the first set of symbols to determine a comparison result, the at least one subset having the first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset; Determining that the comparison result satisfies a specified condition; as well as An action corresponding to the synchronization sequence is executed in response to determining that the comparison result satisfies the specified condition.

2. The method according to claim 1, wherein: The comparison result is an indication of whether there is a perfect match between the first set of symbols and the at least one subset of the received second set of symbols, and wherein determining that the comparison result satisfies a specified condition comprises determining that the indication is a perfect match.

3. The method according to claim 1, wherein: The comparison result is a correlation between the first set of symbols and the at least one subset of the received second set of symbols, and wherein determining that the comparison result satisfies a specified condition comprises determining that the correlation is above a specified threshold.

4. The method according to claim 1, wherein: Executing the actions corresponding to the synchronization sequence includes waking the first device from a low power state.

5. The method according to claim 1, wherein: Executing the actions corresponding to the synchronization sequence includes aligning symbol boundaries based on the at least one subset.

6. The method according to claim 1, wherein: The comparison result is a distance metric, and wherein the method further comprises: comparing a second subset of a second set of received symbols to the first set of symbols to determine a second comparison result, the second subset having the first number of symbols; determining that the comparison result indicates a shorter distance than the second comparison result; and Wherein, determining that the comparison result satisfies a specified condition includes determining that the comparison result indicates a distance shorter than a specified threshold.

7. The method according to claim 1, wherein: At least one noise symbol is intentionally interspersed with the synchronization sequence in the second set of symbols by the second device.

8. The method according to claim 1, wherein: At least one noise symbol is interspersed with the synchronization sequence in the second set of symbols by the signal channel.

9. The method according to claim 1, wherein: The method is performed by an Internet of Things (IoT) device.

10. A device capable of synchronization, the device comprising: Hardware processor; A memory storing instructions that, when executed by the hardware processor, cause the device to perform operations including: identifying a first set of symbols corresponding to a synchronization sequence, the first set of symbols having a first number of symbols; receiving a second set of symbols from a second device via a signal channel, the second set of symbols comprising a second number of symbols, the second number being greater than the first number; comparing at least one subset of the second set of symbols to the first set of symbols to determine a comparison result, the at least one subset having the first number of symbols, the at least one subset skipping at least one symbol in the second set of symbols that is between at least two other symbols included in the at least one subset; Determining that the comparison result satisfies a specified condition; as well as An action corresponding to the synchronization sequence is executed in response to determining that the comparison result satisfies the specified condition.

11. The device according to claim 10, wherein: The comparison result is an indication of whether a perfect match exists between the first set of symbols and the at least a subset of the received second set of symbols, and wherein determining that the comparison result satisfies a specified condition comprises determining that the indication is a perfect match.

12. The device according to claim 10, wherein: The comparison result is a correlation between the first set of symbols and the at least a subset of the received second set of symbols, and wherein determining that the comparison result satisfies a specified condition comprises determining that the correlation is above a specified threshold.

13. The apparatus according to claim 10, wherein: The operation of executing the actions corresponding to the synchronization sequence includes waking the device from a low power state.

14. The apparatus according to claim 10, wherein: The operation of executing the actions corresponding to the synchronization sequence includes aligning symbol boundaries based on the at least one subset.

15. The apparatus according to claim 10, wherein: The comparison result is a distance metric, and wherein the operations further include: comparing a second subset of a second set of received symbols to the first set of symbols to determine a second comparison result, the second subset having the first number of symbols; determining that the comparison result indicates a shorter distance than the second comparison result; and Wherein, determining that the comparison result satisfies a specified condition includes determining that the comparison result indicates a distance shorter than a specified threshold.

Citation Information

Patent Citations

  • Correlation determination early termination

    US20170207909A1

  • Impulse noise detection from preamble symbols

    US7215727B2