Modulation-agnostic transformations using unitary braid divisional multiplexing (UBDM)
Nonlinear transformations in unitary blade division multiplexing (UBDM) improve wireless communication security by constructing unitary matrices in layers, addressing vulnerabilities in linear transformations and reducing noise amplification.
Patent Information
- Application Number
- JP2024171313
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2020-06-30
- Filing Date
- 2024-09-30
- Publication Date
- 2025-01-14
- Estimated Expiration
- 2040-07-01
AI Technical Summary
Wireless communication systems face security vulnerabilities due to linear transformations used in data modulation, which can be decoded by eavesdroppers and amplify noise, leading to increased bit error rates.
Implementing nonlinear transformations in data modulation, such as unitary blade division multiplexing (UBDM), which includes transposition and nonlinear layers like S-box transforms, to enhance security without amplifying noise, using block U(2) matrices and transpositions to construct unitary matrices in layers.
Enhances data transmission security by preventing eavesdropping while maintaining signal quality, reducing computational complexity, and minimizing noise amplification.
Smart Images

Figure 2025004081000001_ABST
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to, and is a continuation of, U.S. patent application Ser. No. 16 / 459,254, filed July 1, 2019, and entitled “Communication System and Method Using Orthogonal Frequency Division Multiplexing (OFDM) with Non-Linear Transformation,” which also claims priority to, and is a continuation of, U.S. patent application Ser. No. 16 / 916,303, filed June 30, 2020, and entitled “Modulation-Agnostic Transformations Using Unitary Braid Divisional Multiplexing (UBDM),” the disclosures of each of which are incorporated herein by reference in their entirety for all purposes.
[0002] This application is a joint venture between U.S. non-provisional patent application Ser. No. 16 / 416,144, filed May 17, 2019, and entitled “COMMUNICATION SYSTEM AND METHODS USING MULTIPLE-IN-MULTIPLE-OUT (MIMO) ANTENNAS WITHIN UNITARY BRAID DIVISIONAL MULTIPLEXING (UBDM)” and U.S. non-provisional patent application Ser. No. 16 / 459,245, filed July 1, 2019, and entitled “SYSTEMS, METHODS AND APPARATUS FOR SECURE AND EFFICIENT WIRELESS COMMUNICATION OF SIGNALS USING A GENERALIZED APPROACH WITHIN UNITARY BRAID DIVISION MULTIPLEXING” and U.S. non-provisional patent application Ser. No. 16 / 459,245, filed July 1, 2019, and entitled “COMMUNICATION SYSTEM AND METHOD USING LAYERED CONSTRUCTION OF ARBITRARY UNITARY No. 16 / 459,262, entitled "METAL ACTIVATION AND METHODS FOR HYDROPHILIC HYDROPHILIC MATRICES," the disclosures of each of which are incorporated herein by reference in their entireties for all purposes.
[0003] Federal Interest Statement The United States Government holds a non-exclusive, irrevocable, royalty-free license in this invention with the authority to grant licenses for all United States Government purposes.
[0004] The present invention relates generally to data communications, and more specifically to techniques for enhancing security in data communications using unitary blade division multiplexing (UBDM). [Background technology]
[0005] Wireless communication systems are widely deployed to provide various types of communication services, such as, for example, voice, packet data, and the like. These systems may utilize modulation techniques that can provide high performance in some wireless environments, for example, by dividing the overall system bandwidth into several sub-bands (e.g., (N) orthogonal sub-bands), also commonly referred to as subcarriers, tones, bins, and frequency sub-channels. In multiple access communication, multiple user devices transmit signals to a receiver through a single communication channel. These signals are superimposed to form a combined signal that propagates through the channel. The receiver then performs a separation operation on the combined signal to recover one or more individual signals from the combined signal. For example, each user device may be a mobile phone belonging to a different user, and the receiver may be a cell tower. By separating the signals transmitted by different user devices, different user devices may share the same communication channel without interference.
[0006] A transmitter may transmit different symbols by varying the state of a carrier or subcarrier, for example by varying the amplitude, phase, and / or frequency of the carrier. Each symbol may represent one or more bits. These symbols can each be mapped to a discrete value in the complex plane, thus producing quadrature amplitude modulation, or by assigning each symbol to a discrete frequency, producing frequency shift keying. The symbols are then sampled at a Nyquist rate, which is at least twice the symbol transmission rate. The resulting signal is converted to analog via a digital-to-analog converter and shifted up to the carrier frequency for transmission. When different user devices transmit symbols simultaneously over a communication channel, the sine waves represented by those symbols are superimposed to form a combined signal received at the receiver. Summary of the Invention
[0007] In some embodiments, a method for implementing a fast UBDM transform includes receiving a first vector (input vector) via a processor and splitting the first vector to generate a magnitude vector and a sign vector. A second vector including a modified magnitude vector and a modified sign vector is generated by applying a transpose to the magnitude vector to generate a modified magnitude vector, transforming the sign vector to an intermediate code vector based on an algorithm, and applying multiple nonlinear layers to the intermediate code vector to generate a modified code vector. Transforming the sign vector is optionally based on an initialization vector. Each nonlinear layer from the multiple nonlinear layers includes at least one of a transpose, an S-box transform, a diffuse linear operation, or an Xor operation, or any combination thereof. The multiple linear layers are applied to the second vector to generate a third vector, the third vector being a transformed version of the first vector. A first signal representing the third vector is transmitted to at least one transmitter for transmission of a second signal representing the transformed data vector from the at least one transmitter to at least one receiver. In some implementations, the transpose applied to the magnitude vector does not reduce the total power of the first vector.
[0008] In some embodiments, a method for implementing a fast UBDM transform includes receiving, via a processor, an input vector including a plurality of complex numbers. The transformed vector is generated based on the input vector and via the processor by applying a transpose to a magnitude vector associated with the input vector to generate a modified magnitude vector, applying an algorithm (e.g., including an Xor operation) and a plurality of nonlinear layers to a code vector associated with the input vector to generate a modified code vector, the modified magnitude vector and the modified code vector defining an intermediate vector, and applying a plurality of linear layers to the intermediate vector to generate a transformed vector. The method also includes transmitting a signal representing the transformed vector to at least one transmitter for transmission of a second signal representing the transformed vector from the at least one transmitter to at least one receiver. In some implementations, the transpose applied to the magnitude vector does not reduce the total power of the first input vector. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a block diagram illustrating an example electronic communication system in an electronic environment in which the improved techniques described herein may be implemented. [Diagram 2] 1 is a block diagram illustrating a process flow for encoding and decoding a signal according to one embodiment. [Diagram 3] 1 illustrates a system for encoding and decoding a signal, according to one embodiment. [Figure 4] 4 is a flow chart illustrating an exemplary method for modulating data using a nonlinear transformation, according to one embodiment. [Diagram 5] 4 is a flowchart illustrating an example method for implementing high-speed UBDM transformation, according to one embodiment. [Figure 6] 4 is a flowchart illustrating an example method for implementing high-speed UBDM transformation, according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] If a linear transformation is applied to data prior to transmission over a network, as part of an encoding (e.g., "precoding") or modulation process, the transmitted data may be susceptible to being deciphered by an eavesdropper who may be able to determine the linear transformation based on a small number of "plane / cipher" sets (e.g., pairs), e.g., using a single matrix inversion. Thus, systems and methods employing linear transformations may be improved by nonlinearization of the data prior to transmission. Despite known mechanisms for applying nonlinear operations to complex numbers in general, and the data security risks associated with linear transformations, the application of such mechanisms in the context of data modulation may not have been successfully performed previously, e.g., due to various constraints and considerations typically associated with data modulation. For example, during modulation, the power of the signal being transmitted may be reduced and noise and distortion may be amplified. Nonunitary and nonlinear operations may amplify and distort the signal, thereby increasing the bit error rate (BER). Because the nonlinear transformation is typically not of equal length, it also amplifies noise and increases the BER to undesirable levels. In contrast, unitary transformations are ubiquitously used on signals without security considerations because they preserve signal power and are isomorphic / equal length. Some known cryptanalysis methods contain nonlinear components that can block linear attacks by eavesdroppers. However, such cryptanalysis methods operate on bits rather than symbols (i.e., bit-level security), so noise is not an issue.
[0011] Techniques are provided herein for modifying complex baseband symbols in a nonlinear manner to enhance security in Orthogonal Frequency Division Multiplexing (OFDM) systems. In some embodiments, a method for encoding data includes identifying a plurality of complex sets (e.g., pairs) of an input data vector and generating a transformed data vector by applying a nonlinear transformation to each complex set from the plurality of complex sets. The nonlinear transformation includes modifying a phase of a first complex number from each complex set. The phase modification is based on a value associated with a second complex number from each complex set. A signal representing the transformed data vector is transmitted to a plurality of transmitters for transmission of the signal representing the transformed data vector from the plurality of transmitters to a plurality of receivers. The signal representing the nonlinear transformation is transmitted to a second computing device for transmission of the nonlinear transformation to a plurality of receivers prior to transmission of the signal representing the transformed data vector from the plurality of transmitters to the plurality of receivers for recovery of the data vector at the plurality of receivers.
[0012] As used herein, a "transmitter" (or "signal transmitter") refers to any collection of components used to transmit a signal, including, but not limited to, any combination of one or more antennas, amplifiers, cables, digital-to-analog converters, filters, up-converters, processors (e.g., for reading bits and / or mapping bits to baseband), etc. Similarly, as used herein, a "receiver" (or "signal receiver") refers to any collection of components used to transmit a signal, including, but not limited to, any combination of one or more antennas, amplifiers, cables, analog-to-digital converters, filters, down-converters, processors, etc.
[0013] Some embodiments of the present disclosure include systems and methods that achieve nonlinearization of pre-transmission data symbols as part of a modulation process to establish data privacy at the physical layer without amplifying noise. The nonlinear transformations (or "transformations") described herein include nonlinear transformations that do not amplify noise or introduce minimal amplification to noise. The nonlinear transformations can be applied to input data (e.g., data vectors or symbols derived therefrom) once or several times, and can optionally be interleaved with other transformations (linear or otherwise) any number of times.
[0014] 1 is a diagram illustrating an example system 100 in which an improved technique for transmitting wireless communications may be implemented. The system 100 includes a signal transmitter 120 and a signal receiver 150. However, it should be understood that there may be other signal transmitters in the environment that are not depicted.
[0015] The signal transmitter 120 is configured to prepare a signal for transmission to the signal receiver 150 and transmit the prepared signal to the signal receiver 150. The signal transmitter 120 includes a processing circuit unit 124, a memory 126, and a transmission circuit unit 128. The set of processing units 124 includes one or more processing chips and / or assemblies. The memory 126 includes both volatile memory (e.g., RAM) and non-volatile memory such as one or more ROMs, disk drives, solid state drives, etc. The set of processing units 124 and the memory 126 together form a control circuit, which is configured and arranged to perform various methods and functions as described herein. The transmission circuit 128 is configured to transmit a signal in the form of radio frequency energy to the receiver.
[0016] In some embodiments, one or more of the components of the signal transmitter 120 may be or include a processor (e.g., processing unit 124) configured to process instructions stored in memory 126. Examples of such instructions as depicted in Figure 1 include an initial vector generation manager 130 and a synchronization signal generation manager 146. Additionally, as illustrated in Figure 1, the memory 126 is configured to store various data including an initial vector 132, a channel index 136, a signal 140, and a synchronization signal 148.
[0017] Fast unitary transformation The above methods and systems typically include matrix operations on vectors. If the length of the vector is N and the size of the matrix is N×N (e.g., if the matrix is a unitary matrix), then the matrix operations on the vector require O(N 2 ) multiplications are involved. Thus, as N increases, the computational load of a communication system can become prohibitively high.
[0018] In some embodiments, some fast unitary transformations can be employed to reduce computational complexity. For example, matrix operations on vectors can be achieved using Fourier matrices, Walsh-Hadamard matrices, Haar matrices, slant matrices, certain types of Toeplitz matrices, and certain types of circulant matrices that can operate on vectors of a fast complexity class. However, these types of matrices only form a limited class of transformations, and the resulting level of security may not be sufficient.
[0019] To address the complexity issue while maintaining the security of communication, the systems and methods described herein employ an approach to construct any unitary matrix from smaller matrices. In this approach, the unitary matrix is constructed in layers. Each layer includes two operations. The first operation is a transpose, and the second operation is a direct sum of U(2) matrices. The transpose matrix is a unitary matrix that does not require any floating-point operations, so it does not require any calculations, i.e., it has a complexity of O(1). The U(2) matrix is a matrix with most values of 0, except for 2×2 blocks along the diagonal (also called block U(2) matrices). These block U(2) matrices include only 4×N / 2=2×N multiplications. As a result, a layer that includes block U(2) includes 2×N multiplications of block U(2) and does not include any multiplications of the transpose. In other words, one layer in the construction of a unitary matrix has a complexity of O(N).
[0020] The total complexity for constructing a unitary matrix is the product of the number of layers and the complexity of each layer, O(N). In some embodiments, the total number of layers may be log(N), so the total complexity of all layers is O(N×log(N)), which is equal to the complexity of standard OFDM. Furthermore, the log(N) layers and transpose matrix of block U(2) can generate dense unitaries. Although the space of fast unitary matrices is not as large as the entire space of unitary matrices, it can still be large enough to prohibit attacks by eavesdroppers (see details below with reference to FIG. 9).
[0021] In some embodiments, the approaches described herein may employ block U(m) matrices to construct unitary matrices, where m is a positive integer (e.g., m=3, 4, 5, etc.). In some embodiments, when constructing unitary matrices, matrices with different sizes may also be used within a single layer. In some embodiments, different layers may use matrices with different sizes, e.g., a first layer may use block U(m) matrices and a second layer may use block U(l) matrices, where m is different from l. For example, for N=8, a set of four 2×2 block U(2) matrices may be used in the first layer, followed by a transpose. Then, two U(3) matrices and a single U(2) matrix may be used in the second layer, followed by another transpose. A third layer may include a block U(2) matrix, a block U(4) matrix, then another block U(2) matrix, followed by a third transpose.
[0022] In some embodiments, certain types of fast unitary matrices can also be written in terms of layers, each of which involves the transpose and direct sum of blocks of smaller matrices. These types of matrices include, for example, Fourier matrices, Walsh-Hadamard matrices, Haar matrices, Slant matrices, and Toeplitz matrices. In some embodiments, unitary matrices that can be constructed using the layered approach include any matrix that is not a direct sum of discrete Fourier matrices.
[0023] Security issues regarding linear transformations in modulation. To illustrate the security vulnerability associated with data modulation using a linear transformation, let us consider a case in which the sender and receiver only use a linear unitary matrix A to modulate the data symbols.
number
number
number
number
number
number
number
number
number
number
[0024] Nonlinear transformation in modulation The above examples illustrate security vulnerabilities that may exist when using linear transformations for data modulation. In the following sections, embodiments of nonlinear transformations during data modulation are described to improve the security of data transmission while avoiding the drawbacks typically associated with nonlinear operations. For example, as described above, nonlinear transformations can amplify and / or distort signals, thereby amplifying noise, reducing the signal-to-noise ratio (SNR) and / or increasing the bit error rate (BER). Some embodiments described herein achieve the destruction of linearity (i.e., nonlinearization) without amplifying (or minimally amplifying) noise in a manner that may allow system designers to tune the degree of nonlinearity. The nonlinear transformations described herein may not increase the total power of the signal and are reversible, thus permitting data recovery at the receiver. The nonlinear transformations may be applied to the input data (e.g., data vectors or symbols derived therefrom) once or several times and may be optionally interleaved with other transformations (linear or otherwise) any number of times before transmission of the transformed one. For example, there may be five layers of "block U(2)" matrices with nonlinear transformations (as described herein) and transpositions.
[0025] 2 is a block diagram illustrating a process flow for encoding and decoding a signal using a nonlinear transform, according to one embodiment. During the encoding and decoding process 200, an input data vector "X" is input to a computation device at 202. A nonlinear transform (optionally a norm-preserving transform) is applied to the input data vector X via the computation device at 210 to generate a transformed vector. The transformed vector is transmitted to one or more transmitters for wireless transmission 220 at 212. One or more signals representing the transformed vector are transmitted to another receiver at 222, and upon reception at the one or more receivers, the transformed vector is decoded / demodulated at 230 based on the nonlinear transform, and the input data vector is reconstructed (output "Y") at 232. As indicated by the dashed lines in FIG. 2 , a representation of the nonlinear transformation may have been transmitted from the computing device to one or more receivers (e.g., prior to, simultaneously, in parallel, overlapping in time, or after transmission of one or more signals representing the transformed vector to another receiver at 222).
[0026] In some embodiments, the nonlinear transformation includes applying a first nonlinear transformation and a second nonlinear transformation before transmitting signals representing the transformed data vector to the multiple transmitters. The first nonlinear transformation and the second nonlinear transformation can be applied to a common collection or subset of the complex number set, or each can be applied to a different collection or subset of the complex number set. In the latter example, assume that the input data vector has a length of 4 and includes components (i.e., complex numbers) 1, 2, 3, and 4. Now assume that components 1 and 2 are paired as one set and components 3 and 4 are paired as another set prior to the first nonlinear transformation. The first nonlinear transformation is then applied to the (1,2) set and the (3,4) set, for example, in parallel or overlapping time. Another collection of sets is then identified, with components 1 and 3 paired as a first set and components 2 and 4 paired as a second set. A second nonlinear transform is then applied to the (1,3) and (2,4) sets, e.g., in parallel or overlapping in time. In some embodiments, the first nonlinear transform may be applied to the (1,2) and (3,4) sets in parallel, and the second nonlinear transform may be applied to the (1,3) and (2,4) sets in parallel, although it should be noted that the first and second nonlinear transforms are not performed in parallel because the input to the second nonlinear transform is the output from the first nonlinear transform.
[0027] Example Nonlinear Operations In some embodiments, a nonlinear operation Q is applied q times in the first part of the fast transform. i teeth,
number
number
number
number
[0028] Q i Operation (
number
number
number
[0029] The function Sign(x) returns +1 if x>0 and returns -1 if x<0. As an example, consider the case where w1 and w2 are (1;0) and (1;1), respectively, and b1=1+i and b2=-1+i. 11 = 1, so the imaginary part of b1 is considered. The sign of the imaginary part of b1 is Sign(Im(b1)) = Sign(Im(1+i)) = Sign(+1) = +1. Value (-1)w12 =(-1) 0 =+1. Therefore, it is (-1) w12 ==Sign(Im(b1)). Since w2 = (1,1), the behavior of b2 ← -b2 and Q of this doublet is as follows:
number
[0030] Note that the first (top) component is left unchanged. The above is performed for each doublet of the vector, and such operations collectively constitute a single application of Q. The transposition is included so that different components act as "control gates" for the other components in each of the q layers. Note that the operation of Q, although unitary, is highly nonlinear.
[0031] In some embodiments, generating the transformed data vector also includes applying a nonlinear transformation followed by performing a linear transformation or a discrete Fourier transform. Alternatively, or in addition, the one or more receivers that receive the one or more signals representing the transformed vector may include multiple antenna arrays, and the receivers and transmitters may be configured to perform multiple-input multiple-output (MIMO) operations.
[0032] FIG. 3 is a diagram illustrating a system for encoding and decoding a signal (e.g., for implementing process 200 of FIG. 2) according to one embodiment. The system 300 includes one or more transmitters ("Txs"), each including a processor 312 and multiple antennas 314a-314d. X The transmitter 310 includes one or more receivers ("T") 310, each including a processor 332 and multiple antennas 324a-324c, via a wireless communication network 320. Y" 330. An input data vector X is received at 302 in the system and converted via a nonlinear transformation by the transmitter 310 into a transformed data vector that is transmitted to the receiver 330 via one or more of the network 320 antennas 314a-314d. The transformed vector is received at the receiver 330 via one or more of the antennas 324a-324c and demodulated based on the nonlinear transformation to generate a recovered data vector Y at 342. Each of the antennas 314a-314d can transmit signals to multiple ones of the antennas 324a-324c. In other words, the antennas 314a-314d of the receiver 310 and the antennas 324a-324d of the receiver 330 may be configured to perform multiple-input multiple-output (MIMO) operation as follows, and the antenna 314a of the transmitter 310 may transmit a signal (as signals 322a, 322b, and 322c, respectively) to one, a subset, or all of the antennas 324a, 324b, and 324c of the receiver 330 via the wireless communication network 320. Similarly, antenna 314b of transmitter 310 can transmit signals (as signals 322d, 322e, and 322f, respectively) to one, a subset, or all of antennas 324a, 324b, and 324c of receiver 330 via wireless communication network 320, and antenna 314c of transmitter 310 can transmit signals (as signals 322g, 322h, and 322i, respectively) to one, a subset, or all of antennas 324a, 324b, and 324c of receiver 330 via wireless communication network 320.
[0033] FIG. 4 is a flow chart illustrating an exemplary method for modulating data using a nonlinear transformation, according to one embodiment. As shown in FIG. 4, the method 400 includes, at 410, identifying a plurality of complex sets of an input data vector via a processor of a first computing device. The input data vector includes a plurality of complex numbers. At 420, a transformed data vector is generated by applying a nonlinear transformation to each subset of a complex set from the plurality of complex sets. The nonlinear transformation includes modifying a phase of a first complex number from the plurality of complex sets based on a value associated with a second complex number from the plurality of complex sets. The signal representing the transformed data vector is transmitted at 830 to a plurality of transmitters for transmission of the signal representing the transformed data vector from the plurality of transmitters to a plurality of receivers. At 440, the signal representing the nonlinear transformation is transmitted to a second computing device for transmission of the nonlinear transformation to a plurality of receivers prior to, simultaneously, overlapping in time, or after transmission of the signal representing the transformed data vector to the plurality of receivers for recovery of the data vector at the plurality of receivers.
[0034] In some embodiments, modifying the phase of the first complex number from the set of complex numbers is also based on a predetermined factor, and method 400 also includes transmitting signals representing the predetermined factor to the multiple receivers prior to, simultaneously, overlapping in time, or after transmission of signals representing the transformed data vector from the multiple transmitters to the multiple receivers for recovery of the data vector at the multiple receivers.
[0035] In some embodiments, the input data vector includes multiple complex numbers that are split or decomposed into their “norm” (or “magnitude”) and phase components. For example, each complex number z can be written as: z=re i*x , where r is a positive real number and x is a real number in [0, 2pi).
[0036] A plurality of complex numbers are split or decomposed into sets of complex numbers (e.g., multiple sets of complex numbers are detected or selected), and the difference between two norms of each set of complex numbers is calculated. If r1 is the norm of one of the two complex numbers and r2 is the other norm, the difference is calculated as r1 - r2 or r2 - r1. The difference is then raised to the power of p to obtain an intermediate value (r1 - r2)^p or (r2 - r1)^p. The intermediate value is then multiplied by a predetermined constant R to obtain a value, R*(r1 - r2)^p or R*(r2 - r1)^p. This value is then used to define the angle by which the phase of the original complex number (z1 or z2) with the smaller norm is rotated / adjusted.
[0037] As an example, a set of complex numbers such as the following is given. z1 = r1*e {ix1} z2 = r2*e {ix2}
[0038] Assuming r2 < r1, the phase of z2 is adjusted as follows while z1 remains unchanged. z1 = r1*e {ix1} z2 = r2*e {ix2} *e {iR*(r1-r2)^p}
[0039] In other words, the complex number with the smaller magnitude rotates (i.e., non-linearly transforms) in the complex plane by an angle proportional to the power of the difference in magnitudes of the complex numbers in the set. According to simulations, for any N (where N is the number of subcarriers) and any underlying constellation, there exist values of p and R that make it impossible for an eavesdropper to attempt any linear attack while having a slight impact on the BER (less than 0.5 dB of cluster dispersion for realistic SNR). A "constellation" (or constellation diagram) represents the signal modulated by a digital modulation scheme.
[0040] In some embodiments, the values of R and p vary for each set of symbols for each baud. For example, R may be a function of the "layer" (e.g., in the sense above, where a "layer" consists of block U(2) and the transpose described above) and / or the set of symbols being manipulated.
[0041] In some embodiments, the nonlinear transformation may be performed at any stage of the precoding or pre-transmission operation and / or on any collection of sets of complex numbers in the input data vector. For example, the nonlinear transformation may be performed one or more of the following: once at the beginning of the precoding or pre-transmission operation, once at the end of the precoding or pre-transmission operation, between each block U(2) and the transpose (i.e., after block U(2) and before the transpose), etc. The nonlinear transformation may be interleaved with any number and combination of other precoding operations, whether linear or nonlinear. In some embodiments, the nonlinear transformation is applied to all complex sets of the input vector. In other words, each complex number is combined with one other complex number for a total of N / 2 sets. In other embodiments, the nonlinear transformation is applied only to a subset of the complex sets of the input vector and not to other complex sets of the input vector.
[0042] In some embodiments, the nonlinear transformation is performed as follows: Take the two components of the sum (length-N) baud. Since both components can be complex numbers, they can be written as:
number
[0043] Although a single 2-vector is shown above for illustration, other vector lengths / sizes can be used (e.g., a single 3-vector, a single 4-vector, multiple vectors, etc.). The following operations can be performed on any two components of a vector, and the two components do not necessarily have to be adjacent to each other. In some implementations, several layers of the "fast UBDM" layer of block U(2) and a transpose are applied first, and then a nonlinear transformation is applied to each set of vectors (e.g., adjacent or "lined" sets at this point because the vector sets have been permuted and mixed several times by the layers), followed by one or more additional "fast" layers. Additional examples of fast UBDM layers are described below.
[0044] To perform a nonlinear transformation on a single set (e.g., a pair) of components, two parameters may be chosen: a power p (which may be any real number, e.g., 1, 2, or 3) and a value R that is a real number. Given two complex numbers, a rotation is applied to the complex number with the smaller magnitude by an angle proportional to the difference between the absolute values of the two. The smallest rotation occurs when (r1-r2)=0, resulting in a rotation of 0. The largest rotation occurs when (r1-r2) is the maximum distance possible, which depends on the constellation being used.
[0045] For every set of complex numbers as in (20), the difference (r1-r2) is calculated, raised to the power p, and then multiplied by R to produce a value that defines the degree of phase rotation to be applied to the complex number with the smaller magnitude. In other words, the following phase shift is calculated:
number
[0046] If r1 = r2, this formula is 0. As (r1 - r2) increases, φ also increases, and the pth power controls the rate at which φ increases. Once φ is calculated, e is converted to a complex number with a smaller magnitude. iφ For example, in (20), r 1>r2 Assume that the transformation is as follows:
number
[0047] The receiver performs a similar process, except that when the receiver calculates φ, it rotates the complex value with the smaller magnitude in the opposite direction.
[0048] Fast unitary braid division multiplexing (UBDM) conversion overview The "baud" vector, a vector of length N with components in constellation C
number
number
[0049] In some embodiments, the “fast” UBDM transformation (or “transformation”) can be expressed as an exemplary vector
number
[0050] In some embodiments, the linear layer is in the form:
number
[0051] Nonlinear Operations In some embodiments, the nonlinear operations (i.e., the nonlinear portion of the fast UBDM transform) include multiple one-time steps and a series of nonlinear and / or linear layers. The multiple one-time steps may include one or more operations from a general class of operations including, by way of example, S-box applications, diffuse linear transforms (e.g., Maximum Difference Separable (MDS) matrices), Xor additions, transpositions, and the like. In some embodiments, the nonlinear operations (i.e., the nonlinear portion of the fast UBDM transform) include multiple applications of operations typically found in block ciphers (a general class of symmetric cryptanalysis methods), including, but not limited to, Substitution Permutation Network (SPN) structures, Feistel structures, Lai-Massey structures, S-boxes of any size, primal Xor additions, diffuse linear transforms, transpositions, addition-rotation-Xor (ARX) operations, and the like. These operations may be applied to the complex values themselves, to sign values, magnitude values, or any combination, to vary the amplitude, frequency, and phase of various components of the signal waveform. The input is a Boh vector
number
[0052] In some embodiments, the nonlinear operation is applied as follows: First, the N complex boe vectors
number
number
number
number
[0053] Magnitude vector
number
number
number
number
[0054] The above modified sign vector
number
[0055] As an example, in some embodiments, when the mode of operation is CBC mode, the code vector is XORed with an initialization vector (IV), a bit vector of length 2N that is part of the shared secret. However, when the mode of operation is ECB mode, the IV may not be applied. Instead, the first step in ECB mode (or the second step in CBC mode) may be to XOR the code vector with a "seed" vector, which is a binary vector of length 2N. This length 2N seed vector is the bit vector
number
[0056] Then, nonlinear "layers" can be applied in order, for example, from nonlinear layer 1 to nonlinear layer Q. Each nonlinear layer includes an S-box operation, a transpose
number
number
number
number
number
[0057] In some embodiments, when all of the nonlinear layers are applied and the system is in CBC mode, the resulting code vector is saved and then used as the initialization vector for the UBDM transformation of the next bow vector to be transformed.
[0058] An example pseudocode for the nonlinear transformation in ECB mode is provided below.
number
number
number
number
number
[0059] The output of the algorithm is the transformed value
number
[0060] An exemplary pseudocode for the nonlinear transformation in CBC mode is provided below.
number
number
number
number
number
number
[0061] The output of the algorithm is the transformed value.
number
number
[0062] In some embodiments, if the mode of operation is ECB mode and the algorithm is applied twice to the same boe vector, the same output is obtained both times. In other embodiments, if the mode of operation is CBC mode, an initialization vector is used (and thus incorporated) for each transformation, so that as transformations are performed on successive boe vectors, different outputs are obtained, even if the input is the same, thereby providing an additional obstacle for potential attackers to overcome and may enhance information security.
[0063] Once the aforementioned nonlinear operations are completed, the linear / unitary portion of a "fast" UBDM transformation is performed on the output of the nonlinear operations, as discussed below.
[0064] Example Block U(2) Operation In some embodiments, the operations of U are performed on doublets of vectors resulting from previous linear or non-linear operations. The operations of U achieve a unitary "mix" of the components. A single 2×2 block may be of the form:
number
[0065] The sum of the 2 × 2 blocks in (1.3.1) is N / 2, which is a single matrix U i, and may contain 2N complex numbers (N is the UBDM block size, and N may refer to the number of subcarriers if the system is OFDM). To improve efficiency and speed of data retrieval, in some implementations, only the angles α, φ, θ, and φ are stored instead of the entire complex numbers. Each of the aforementioned angles may be stored using fewer bits (e.g., at least 8 bits for each angle) compared to storing the entire complex numbers. Thus, for storage purposes, only 4 8(N / 2)=16N bits may be needed for U. When it comes time to calculate the complex floats actually used in the matrix, for example, the 8-bit value of θ is an integer m (where m is an integer
number
number
[0066] U for two components of the bow vector 2×2 The operation is as follows.
number
[0067] The operation of U is as shown above for each doublet of components of the vector resulting from the nonlinear operation. The transposition after each U serves to mix / combine as many different components as possible in unpredictable ways.
[0068] Example pseudocode for transposing after each U is as follows:
number
number
number
[0069] In the above pseudocode, U represents the collection of all block U(2) matrices in every layer. Therefore, U[I], in
number
number
[0070] An example transpose operation A variety of different transpositions can be used in both the nonlinear portion of the fast UBDM transform and the linear portion of the fast UBDM transform. An exemplary efficient method for generating and storing such transpositions is given below.
[0071] Note that for N objects, there exist N! unique transpositions. In other words, if a map is defined from the integers [0, N!), one such integer can be randomly generated and mapped to the corresponding transposition using, for example, Lehmer codes. Lehmer codes facilitate the conversion (or mapping) of transpositions to integers and integers to transpositions in a fast and efficient manner. An example of mapping integers to transpositions is discussed below.
[0072] Assume N=4. Given 4!=24, there are 24 permutations that can be labeled using the integers 0...23. One of these integers can be initially selected randomly. Assume the selected integer is 17. The integer is then converted from a decimal to a "base factorial", e.g., as follows: 17÷1=17 remainder 0 (1.4.1) 17÷2=8 remainder 1 (1.4.2) 8÷3=2 remainder 2 (1.4.3) 2÷4=0 remainder 2 (1.4.4)
[0073] The transformation ends when the quotient becomes 0 (optionally with a remainder). The factorial is then obtained using the remainder value as follows: 2×3!+2×2!+1×1!+0×0!=2×6+2×2+1×1=12+4+1=17(1.4.5)
[0074] Once we have obtained the factorial representation of an integer, which can be written as (2,2,1,0), the following algorithm is performed. The process starts with the rightmost component and moves to the left. At each step, every value to the right of the component in question is incremented by 1 if and only if it is greater than or equal to the component in question. In the above example,
number
[0075] The last term in the above list, (2,3,1,0), represents the transpose. Each element of the transpose corresponds to a column of P, and the positions within each column of P are vertically oriented downwards at positions 0, 1, 2, and 3. This indicates that the first element moves to position 2, the second element moves to position 3, the third element moves to position 1, and the last element moves to position 0. The matrix representation of this transpose is:
number
[0076] Consider another example where the integer is 8. Its factorial representation is: 8÷1=8 remainder 0 8÷2=4 remainder 0 4÷3=1 remainder 1 1÷4=0 remainder 1
[0077] So, in practice, 1×3!+1×2!+0×1!+0×0!=8. (1.4.8)
[0078] next,
number
[0079] This corresponds to the transpose of the matrix.
number
[0080] In some embodiments, to generate the transpose of a given N, a random integer between 0 and N!-1 is selected and converted to a base factorial. The resulting array is converted to the transpose. The number of bits to accommodate integers between 0 and N!-1 can be determined, for example, using Stirling's approximation, which may be slightly overestimated in some implementations. Then, after converting the resulting bit string to an integer, rather than converting the integer to its base factorial form, the number of bits for each value can be directly estimated. Note that a typical numerical value for a base factorial is of the form: x=a0×0!+a1×1!+a2×2!+a3×3!+…(1.4.11)
[0081] Value a n is 0 to n and represents the number of bits read for each value. As an example, assume N=8. Therefore, the approximate number of bits read is:
number
[0082] Next, consider a list of 16 random bits (e.g., using a pseudorandom number generator such as Mathematica's PRNG function). (0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,1,1,0)
[0083] The first term in the above list of 16 random bits has coefficient 0!, which is 0, so that term can be ignored. The second term in the above list of 16 random bits has coefficient 1!, which is either 0 or 1. If the first bit above (the leftmost in this case) is 0, then a1=0. That first bit is then clipped (removed) from the list of 16 random bit strings, leaving the next list of 15 bits. (0,1,0,0,0,1,0,1,0,0,1,0,1,1,0)
[0084] Next, the value a2 is taken. This value can be 0, 1, or 2, so a2 is represented by 2 bits. Since 2 bits can store just more than two possible values, we consider taking the value mod 2+1=3. The next 2 bits (the leftmost 2 bits from the 15-bit list above) are 0 and 1, which have a value of 1 (when concatenated, i.e. "01"), so a2 is set to a2=1. If we again chop (remove) the first 2 bits from the 15-bit list above, we are left with the following list of 13 bits: (0,0,0,1,0,1,0,0,1,0,1,1,0)
[0085] Next, for a3, the value can be 0, 1, 2, or 3, so a3 is represented by 2 bits. The first 2 bits (the leftmost 2 bits from the 13-bit list above) are 0 and 0, which have a value of 0 (which when concatenated, is "00"), so a3 is set to a3=0. If we again prune (remove) the first 2 bits from the 13-bit list above, we are left with the following list of 11 bits: (0,1,0,1,0,0,1,0,1,1,0)
[0086] Next, for a4, the value can be 0, 1, 2, 3, or 4, so a4 is represented by 3 bits. The next 3 bits (the leftmost 3 bits of the 11-bit list above) are (0,1,0), which have a value of 2 (when concatenated, i.e. "010"), so a4 is set to a4=2. If we chop (remove) the first 3 bits from the 11-bit list above, we are left with the following 8-bit list: (1,0,0,1,0,1,1,0)
[0087] Next, for a5, there are 6 values, so a5 is represented by 3 bits, which in this example (reading the leftmost 3 bits of the 8-bit list above) is (1,0,0), or 4. Therefore, a5=4, and if we chop (remove) the first 3 bits from the 8-bit list above, we are left with the following 5-bit list: (1,0,1,1,0) Next, a6 is represented by 3 bits, which in this example (reading the leftmost 3 bits from the 5-bit list above) is (1,0,1), or 5, so a6 = 5. If you chop (delete) the first 3 bits from the 5-bit list above, you are left with the following 2 bits:
number
[0088] For N=8, equation 1.4.13 produces a value of 17. The original random bit string with the appended bits (now of length 17) is (0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,1,1,0,1), As above, this produces the base factorial of (5,5,4,2,0,1,0,0). Applying the transpose to the base factorial produces:
number
[0089] Note that the last (bottom) row is a valid transposition of 8 objects.
[0090] In some embodiments, the permutation is reversed, for example as follows: First, the permutation is placed in a first row, and the associated integers are placed in consecutive order in a second row below the first. In the above example, the rows would appear as follows:
number
[0091] Then the columns are rearranged so that the top row is in order, giving:
number
[0092] The bottom row of 1.4.16 is the inverse transpose. This result can be confirmed by inspecting the corresponding matrix. The matrix corresponding to (5,6,4,2,0,3,1,7) (using the rules above) is:
number
[0093] The inverse transpose (4,6,3,5,2,0,1,7) corresponds to the following matrix:
number
[0094] From examination of 1.4.17 and 1.4.18, it is clear that the matrices are the inverses of each other (i.e., one is the transpose of the other).
[0095] Peak-to-Average Power Ratio (PAPR) Reduction Changes In some embodiments, modifications to the high-speed UBDM transform are performed such that the PAPR is reduced. Implementing such modifications may require one or more minor modifications to the algorithm, but the total number of generator bits and their usage may remain roughly the same. Examples of such modifications to the algorithm are outlined below.
[0096] PAPR reduction in nonlinear transformation In one or more embodiments, when an APSK constellation is used, modifications to the non-linear portion of the fast UBDM transform are performed, for example because the non-square shape of the APSK constellation can result in undesirable bulging under UBDM. For example, the point a+b i and b+a i, where a>b. In a square constellation, the value a+ai may also be part of the constellation. Circular APSK constellations specifically avoid having such "edge" constellation points. However, when performing a fast UBDM transform as described herein, the transposition of the magnitude transform in the nonlinear portion of the transform may involve swapping points a+ib and b+ia for a+ai and b+bi. Point a+ai will generally have a larger magnitude than either a+bi or b+ai, resulting in an increase in the overall PAPR. To avoid or mitigate such effects, changes can be made to the way the magnitude vectors are transformed in the nonlinear transform, as illustrated in the following example.
[0097] Consider the case N=4. A magnitude transpose is defined by a transpose of length 2N=8. For example, the transpose could be (2,4,1,5,3,8,6,7). The transpose is first split into two lists of length N, the first one with each element less than or equal to N, and the second one with each element greater than N, and the order of appearance of the elements for the transpose is not changed. In the current example, the two lists are (2,4,1,3) and (5,8,6,7). Note that the first of these lists is a valid transpose of N elements. The "upper half" (5,8,6,7) is then reduced modulo 2 to the following modified second list: (1,0,0,1).
[0098] In some embodiments, when performing the nonlinear portion of the fast UBDM transform, both of these vectors (i.e., the first list and the modified second list) are used to modify the constellation vector. Assume the original constellation vector is:
number
[0099] Then the magnitude vector of length 2N is (a1,b1,a2,b2,a3,b3,a4,b4). In absolute value notation (e.g.,
number
[0100] First, the magnitude vector is split into two blocks, and the real and imaginary parts of each number are paired. Thus, the magnitude vector becomes the split magnitude vector ((a1,b1), (a2,b2), (a3,b3), (a4,b4)). The split magnitude vector is then operated on using a transpose of length N generated from the original transpose of length 2N. In this case, the transpose of length N is (2,4,1,3), so the split magnitude vector becomes the permuted split magnitude vector ((a2,b2), (a4,b4), (a1,b1), (a3,b3)). Then, using the binary vector generated from the above vector, the following is obtained: ((b2,a2), (a4,b4), (a1,b1), (b3,a3)).
[0101] The above are then rearranged into a vector.
number
[0102] The sign of each of the numbers in vector 1.5.2 can be determined using a procedure similar to the exemplary nonlinear operation of the sign bits during the fast UBDM transform described above. In some embodiments, the above modifications to the nonlinear portion of the fast UBDM transform are used when a reduction in PAPR is desired and / or when an APSK constellation is being used.
[0103] PAPR Reduction in Linear Transformations In one or more embodiments, a modification to the linear / unitary part of the fast UBDM transform is performed, for example, to limit the zero values of the bow vector (1.3.2). In the Block U(2) operation section above, the angle bit was used to select an angle from a uniform distribution in [0,2π]. To reduce the PAPR, the value of this angle is, for example,
number
[0104] Once the value of r is selected, the value θ selected by the generator bits is modified as follows:
number
[0105]
number
[0106] MEM Diffusion In some embodiments, the "MEM" operation is performed during the nonlinear portion of the fast UBDM transform. The MEM operation includes the code vector
number
number
[0107] Alternatively, if the code vectors are expressed in units of {±1}, the operation can be as follows:
number
number
number
[0108] Nonlinear transformation example The following is an exemplary implementation of the non-linear portion of the high-speed UBDM transform in accordance with one or more embodiments: Consider a 16-QAM block. (3-i,-1+i,-3-3i,1+3i)(0.-1.1)
[0109] As can be observed in (0.-1.1), in this example the block size is N=4.
[0110] First, the block is split or decomposed into two separate length 2N vectors, the first capturing the magnitude of the real and imaginary parts, and the second capturing the sign of the real and imaginary parts. In this example, these first and second vectors are:
number
[0111] For the magnitude vector, a transposition is applied, where the transposition depends on the generator bit / key value. For example, the transposition "π" can be:
number
[0112] Applying the transpose (0.-1.3) to a magnitude vector produces a new magnitude vector:
number
[0113] In addition,
number
[0114] A block cipher is then applied to the code bits. For example, the code value can be converted to bits as follows: (1,-1,-1,1,-1,-1,1,1) → (0,1,1,0,1,1,0,0) (0.-1.5)
[0115] In this example, a "Substitution-Permutation-Network" (SPN) cipher is used, but other types of block ciphers will also work (e.g., Feistel cipher, Lai-Massey cipher, etc.).
[0116] The sign bit of (0.-1.5) is Xored with the generator / seed value. For example, the seed value could be (1,0,0,1,1,1,1,0). The output of the Xor operation is:
number
[0117] Next, "substitution boxes" or "s-boxes" are applied. Applying an S-box involves replacing a collection of bits of a predefined block size with other bits of the same block size. For the current example, consider a 4-bit S-box defined by the following lookup table: (0,0,0,0) → (0,0,0,0) (1,0,0,0) → (1,0,0,0) (0,0,0,1) → (0,0,0,1) (1,0,0,1) → (1,0,1,1) (0,0,1,0) → (0,0,1,0) (1,0,1,0) → (1,1,0,0) (0,0,1,1) → (1,1,0,1)(1,0,1,1) → (1,0,0,1) (0,1,0,0) → (0,1,0,0) (1,1,0,0) → (0,0,1,1) (0,1,0,1) → (0,1,1,1) (1,1,0,1) → (1,1,1,0) (0,1,1,0) → (1,1,1,1) (1,1,1,0) → (1,0,1,0) (0,1,1,1) → (0,1,1,0) (1,1,1,1) → (0,1,0,1) (0.-1.7)
[0118] To apply this s-box, the bit string (1,1,1,1,0,0,1,0) of (0.-1.6) is broken down into blocks of 4 bits each. These blocks are (1,1,1,1) and (0,0,1,0). Using s-boxes, it can be observed that (1,1,1,1) → (0,1,0,1) and (0,0,1,0) → (0,0,1,0).
[0119] So the bit string is just this: (0,1,0,1,0,0,1,0)(0.-1.8)
[0120] Then the transpose is applied to the bit string. In the current example, the transpose π = (1,3,5,7,2,4,6,8) is used, resulting in the bit string: π(0,1,0,1,0,0,1,0)=(0,0,0,1,1,1,0,0)(0.-1.9)
[0121] The above process is then repeated by Xoring another 8-bit string, applying an s-box, then applying a transpose, etc. Finally, a final 8-bit string is obtained, which is converted back to code, for example, as follows (note that the following does not reflect any iteration of the conversion): (0,0,0,1,1,1,0,0) → (1,1,1,-1,-1,-1,1,1) (0.-1.10)
[0122] The vector (0.-1.10) is then transformed into the sorted magnitude vector
number
[0123] The vector (0.-1.11) is a vector of constellation points, which is then passed to the linear / unitary part (layer / round) of the fast UBDM transform.
[0124] The above iteration (Xor → s-box → transpose) may be referred to as a "round" or "layer". The Xor value may be referred to as a "round key", "seed", or "activator". In some embodiments, the same S-box is applied at each layer from multiple layers. In other embodiments, a different S-box is applied at each layer from multiple layers. In still other embodiments, two or more different S-boxes may be used within multiple layers. The transposition may be the same for each round / layer or may be different each time. Similarly, in some embodiments, the same transposition is used at each layer from multiple layers. In other embodiments, a different transposition is used at each layer from multiple layers. In still other embodiments, two or more different transpositions are used within multiple layers.
[0125] Each of the number of layers / rounds, the actual value of the Xor value (seed / generator), and the value of the s box may be variable and / or predefined. Each of the number of layers / rounds, the actual value of the Xor value (seed / generator), and the value of the s box, whether keyed or fixed, may be variable and / or predefined. In the above example, the block size was N=4, so
number
[0126] FIG. 5 is a flow chart illustrating an exemplary method 500 for implementing a fast UBDM transform, according to one embodiment. As shown in FIG. 5, the method 500 includes receiving a first vector via a processor at 510 and dividing the first vector to generate a magnitude vector and a sign vector at 512. A second vector including a modified magnitude vector and a modified sign vector is generated at 514 by applying a transpose to the magnitude vector to generate a modified magnitude vector at 514A, transforming the sign vector to an intermediate code vector based on an algorithm at 514B, and applying multiple nonlinear layers to the intermediate code vector to generate a modified code vector at 514C. Transforming the sign vector at 514B is optionally based on an initialization vector. Each nonlinear layer from the multiple nonlinear layers includes at least one of a transpose, an S-box transform, a diffuse linear operation, or an Xor operation, or any combination thereof, as discussed herein. A plurality of linear layers are applied to the second vector at 516 to generate a third vector, the third vector being a transformed version of the first vector. A first signal representing the third vector is transmitted at 518, e.g., for transmission of the second signal representing the transformed data vector to at least one transmitter and from the at least one transmitter to at least one receiver. In some implementations, the transposition applied to the magnitude vector does not reduce the total power of the first vector.
[0127] In some embodiments, the method 500 also includes selecting an algorithm based on an encryption mode of operation of the processor. The algorithm may include an Xor operation, and the encryption mode of operation of the processor may be a Cipher Block Chaining (CBC) mode or an Electronic Codebook (ECB) mode. The number of nonlinear layers in the multiple nonlinear layers may be the same as or different from the number of linear layers in the multiple linear layers.
[0128] In some embodiments, at least one of the number of linear layers in the plurality of linear layers ("L") or the number of nonlinear layers in the plurality of nonlinear layers ("Q") is equal to [log2(N)].
[0129] In some embodiments, at least one of the number of nonlinear layers in the multiple nonlinear layers or the number of linear layers in the multiple linear layers is based on performance and / or security constraints (e.g., for a given communication system or components thereof).
[0130] FIG. 6 is a flow chart illustrating an example method 600 for implementing a fast UBDM transform, according to one embodiment. As shown in FIG. 6, the method 600 includes receiving, via a processor, an input vector at 620, the input vector including a plurality of complex numbers. The transformed vector is generated based on the input vector at 622 and via the processor, by applying a transpose to a magnitude vector associated with the input vector at 622A to generate a modified magnitude vector, applying an algorithm (e.g., including an Xor operation) and a plurality of non-linear layers to a code vector associated with the input vector at 622B to generate a modified code vector, the modified magnitude vector and the modified code vector defining an intermediate vector, and applying a plurality of linear layers to the intermediate vector at 622C to generate a transformed vector. The method 600 also includes transmitting, for example, a signal representing the transformed vector to at least one transmitter and a second signal representing the transformed vector for transmission from the at least one transmitter to at least one receiver at 624. In some implementations, the transpose applied to the magnitude vector does not reduce the total power of the input vector.
[0131] In some embodiments, each nonlinear layer from the plurality of nonlinear layers includes at least one of a transposition, an S-box transformation, a spread linear operation, or an Xor operation. The method 600 may also include selecting an algorithm based on an encryption operating mode of the processor (e.g., a Cipher Block Chaining (CBC) mode or an Electronic Codebook (ECB) mode).
[0132] The number of nonlinear layers in the plurality of nonlinear layers may be the same as or different from the number of linear layers in the plurality of linear layers. At least one of the number of nonlinear layers in the plurality of nonlinear layers or the number of linear layers in the plurality of linear layers may be based on at least one of a performance constraint or a security constraint.
[0133] In some embodiments, at least one of the number of linear layers in the plurality of linear layers ("L") or the number of nonlinear layers in the plurality of nonlinear layers ("Q") is equal to [log2(N)].
[0134] While various embodiments have been described above, it should be understood that they are presented by way of example only, and not by way of limitation. Where the methods and / or schematic diagrams above show certain events and / or flow patterns occurring in a particular order, the order of the certain events and / or flow patterns may be altered. While embodiments have been specifically shown and described, it will be understood that various changes in form and details may be made. In addition, some of the steps may be performed simultaneously in a parallel process where possible, or may be performed sequentially as described above. While various embodiments have been described as having certain combinations of features and / or components, other embodiments may have any combination or subcombination of any of the features and / or components from any of the embodiments described herein. Additionally, while various embodiments have been described as having certain entities associated with a particular computing device, other embodiments may have different entities associated with other and / or different computing devices.
[0135] It is contemplated that the systems and methods described herein may be executed by software (stored in memory and / or executed on hardware), hardware, or a combination thereof. Hardware modules may include, for example, general-purpose processors, field programmable gate arrays (FPGAs), and / or application-specific integrated circuits (ASICs). Software modules (executing on hardware) may be expressed in a variety of software languages (e.g., computer code), including Unix utilities, C, C++, Java™, JavaScript, Ruby, SQL, SAS™, Python, Fortran, R programming language / software environment, VisualBasic™, and other object-oriented, procedural, or other programming languages and development tools. Examples of computer code include, but are not limited to, microcode or microinstructions, machine instructions such as those generated by a compiler, code used to generate web services, and files containing high-level instructions executed by a computer using an interpreter. Additional examples of computer code include, but are not limited to, control signals, encryption code, and compression code. Each of the devices described herein may include one or more processors as described above.
[0136] Some embodiments described herein relate to devices that include a non-transitory computer-readable medium (which may also be referred to as a non-transitory processor-readable medium or memory) having instructions or computer code for performing various computer-implemented operations. The computer-readable medium (or processor-readable medium) is non-transitory in the sense that it does not itself include a transitory propagating signal (e.g., a propagating electromagnetic wave that carries information over a transmission medium such as space or a cable). The medium and computer code (which may also be referred to as code) may be designed and constructed for a specific one or more purposes. Examples of non-transitory computer-readable media include, but are not limited to, magnetic storage media such as hard disks and solid-state storage devices, optical storage media such as compact disks / digital video disks (CD / DVDs), compact disk read-only memory (CD-ROMs), and holographic devices, magneto-optical storage media such as optical disks, carrier wave signal processing modules, and hardware devices that are specifically configured to store and execute program code, such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), read-only memories (ROMs), and random access memory (RAM) devices. Other embodiments described herein relate to computer program products that may include, for example, instructions and / or computer code discussed herein.
[0137] Processor-executable instructions may be in many forms, such as program modules executed by one or more computing devices, and may include routines, programs, objects, components, data structures, and other suitable code that causes a processor to perform particular tasks or implement particular data types, and may combine and / or distribute functionality as desired in various embodiments.
[0138] The term "and / or" as used herein and in the claims should be understood to mean "either or both" of the elements so conjoined, i.e., elements that may be present conjunctively or disjunctively. Multiple elements listed with "and / or" should be interpreted in the same manner, i.e., "one or more" of the elements so conjoined. Other elements may optionally be present other than the elements specifically identified by the "and / or" clause, whether related or unrelated to those elements specifically identified. Thus, as a non-limiting example, when used in conjunction with open-ended language such as "comprising," a reference to "A and / or B" may refer to A only (optionally including elements other than B) in one embodiment, B only (optionally including elements other than A) in another embodiment, both A and B (optionally including other elements), etc.
Claims
1. 1. A method comprising: receiving, via a processor, a first vector; dividing, via the processor, the first vector to generate a magnitude vector and a sign vector; via the processor, a second vector including a modified magnitude vector and a modified sign vector; applying a transpose to the magnitude vector to generate the modified magnitude vector; converting said code vector into an intermediate code vector based on an algorithm; applying a plurality of nonlinear layers to the intermediate code vector, each nonlinear layer from the plurality of nonlinear layers including at least one of a transposition, an S-box transformation, a diffusion linear operation, or an Xor operation to generate the modified code vector; applying, via the processor, a number of linear layers to the second vector to generate a third vector, the third vector being a transformed version of the first vector; transmitting a first signal representing the third vector to at least one transmitter and a second signal representing the transformed data vector from the at least one transmitter to at least one receiver for transmission.
2. The method of claim 1 , wherein transforming the code vector is based on an initialization vector.
3. The method of claim 1 , further comprising selecting the algorithm based on a cryptographic mode of operation of the processor.
4. 2. The method of claim 1, wherein the algorithm includes an Xor operation and the cryptographic mode of operation of the processor is a Cipher Block Chaining (CBC) mode.
5. 2. The method of claim 1, wherein the algorithm includes an Xor operation and the cryptographic operating mode of the processor is an Electronic Codebook (ECB) mode.
6. The method of claim 1 , wherein a number of nonlinear layers in the plurality of nonlinear layers is equal to a number of linear layers in the plurality of linear layers.
7. The method of claim 1 , wherein a number of nonlinear layers in the plurality of nonlinear layers is different from a number of linear layers in the plurality of linear layers.
8. At least one of the number of linear layers in the plurality of linear layers ("L") or the number of nonlinear layers in the plurality of nonlinear layers ("Q") is [log 2 2. The method of claim 1 , wherein the n-th order is equal to n(N).
9. The method of claim 1 , wherein at least one of a number of nonlinear layers in the plurality of nonlinear layers or a number of linear layers in the plurality of linear layers is based on a performance constraint.
10. The method of claim 1 , wherein at least one of a number of nonlinear layers in the plurality of nonlinear layers or a number of linear layers in the plurality of linear layers is based on a security constraint.
11. The method of claim 1 , wherein the transposition applied to the magnitude vector does not reduce a total power of the first vector.
12. 1. A method comprising: receiving, via a processor, an input vector comprising a plurality of complex numbers; via the processor, generating a transformed vector based on the input vector; applying a transpose to a magnitude vector associated with the input vector to generate a modified magnitude vector; applying an algorithm and a number of non-linear layers to a code vector associated with the input vector to generate a modified code vector, the modified magnitude vector and the modified code vector defining an intermediate vector; applying a plurality of linear layers to the intermediate vector to generate the transformed vector; transmitting a first signal representing the transformed vector to at least one transmitter and a second signal representing the transformed vector from the at least one transmitter to at least one receiver for transmission.
13. The method of claim 12 , wherein each nonlinear layer from the plurality of nonlinear layers includes at least one of a transpose, an S-box transform, a diffusion linear operation, or an Xor operation.
14. The method of claim 12 , further comprising selecting the algorithm based on a cryptographic mode of operation of the processor.
15. 13. The method of claim 12, wherein the algorithm includes an Xor operation and the cryptographic operating mode of the processor is one of a Cipher Block Chaining (CBC) mode or an Electronic Codebook (ECB) mode.
16. The method of claim 12 , wherein a number of nonlinear layers in the plurality of nonlinear layers is equal to a number of linear layers in the plurality of linear layers.
17. The method of claim 12 , wherein a number of nonlinear layers in the plurality of nonlinear layers is different from a number of linear layers in the plurality of linear layers.
18. At least one of the number of linear layers in the plurality of linear layers ("L") or the number of nonlinear layers in the plurality of nonlinear layers ("Q") is [log 2 13. The method of claim 12, wherein the n-th order is equal to n (N).
19. The method of claim 12 , wherein at least one of a number of nonlinear layers in the plurality of nonlinear layers or a number of linear layers in the plurality of linear layers is based on at least one of a performance constraint or a security constraint.
20. The method of claim 12 , wherein the transposition applied to the magnitude vector does not reduce a total power of the first vector.
21. 1. A method comprising: Identifying, via a processor of a first computing device, a plurality of complex sets of a data vector; generating a transformed data vector by applying a nonlinear transformation to each set of complex numbers from the plurality of sets of complex numbers, the nonlinear transformation including altering a phase of a first complex number from the set of complex numbers based on a value associated with a second complex number from the set of complex numbers, wherein each set of complex numbers from the plurality of sets of complex numbers has at least two complex numbers; transmitting signals representing the transformed data vector to a plurality of transmitters for transmission of the signals representing the transformed data vector from the plurality of transmitters to a plurality of receivers; transmitting a signal representing the nonlinear transformation to a second computing device for transmission of the nonlinear transformation to the multiple receivers for recovery of the data vector at the multiple receivers.
22. 22. The method of claim 21 , wherein the nonlinear transformation is a first nonlinear transformation, and generating the transformed data vector further comprises applying a second nonlinear transformation prior to transmitting the signals representing the transformed data vector to the plurality of transmitters.
23. The plurality of complex number sets is a first plurality of complex number sets, and the method further comprises: further comprising identifying, via the processor, a second plurality of complex sets for the data vector, the second plurality of complex sets being different from the first plurality of complex sets; 22. The method of claim 21, wherein said generating the transformed data vector further comprises applying a second nonlinear transform to each set of complex numbers from the second plurality of sets of complex numbers.
24. 24. The method of claim 23, wherein applying the nonlinear transformation to each set of complex numbers from the second plurality of sets of complex numbers comprises applying the nonlinear transformation to a first subset of a set of complex numbers from the second plurality of sets of complex numbers and applying the nonlinear transformation to a second subset of a set of complex numbers from the second plurality of sets of complex numbers, wherein the applying of the nonlinear transformation to the first subset and the applying of the nonlinear transformation to the second set are performed substantially in parallel.
25. 22. The method of claim 21 , wherein applying the nonlinear transformation to each set of complex numbers from the plurality of sets of complex numbers comprises applying the nonlinear transformation to a first subset of sets of complex numbers from the plurality of sets of complex numbers and applying the nonlinear transformation to a second subset of sets of complex numbers from the plurality of sets of complex numbers, wherein the applying of the nonlinear transformation to the first subset and the applying of the nonlinear transformation to the second set are performed substantially in parallel.
26. 22. The method of claim 21, wherein generating the transformed data vector further comprises performing a linear transformation after applying the nonlinear transformation.
27. 22. The method of claim 21, wherein generating the transformed data vector further comprises performing a discrete Fourier transform after applying the nonlinear transformation.
28. 22. The method of claim 21, wherein the multiple receivers include multiple antenna arrays, and the multiple receivers and the multiple transmitters are configured to perform multiple-input multiple-output (MIMO) operations.
29. The method of claim 21 , wherein the nonlinear transformation is a norm-preserving transformation.
30. 22. The method of claim 21 , wherein modifying the phase of the first complex number from the set of complex numbers is further based on a predetermined factor, the method further comprising transmitting a signal representative of the predetermined factor to the multiple receivers for recovery of the data vector at the multiple receivers.
31. 1. A system comprising: A plurality of receivers; A plurality of transmitters; at least one processor operatively coupled to the plurality of transmitters, the at least one processor comprising: identifying a plurality of complex sets of a data vector, each complex set from the plurality of complex sets having at least two complex numbers; and at least one processor configured to: apply a nonlinear transformation to each set of complex numbers from the plurality of sets of complex numbers, the nonlinear transformation including changing a phase of a first complex number from the set of complex numbers based on a value associated with a second complex number from the set of complex numbers to generate a transformed data vector; and transmit signals representing the transformed data vector to a plurality of transmitters and from the plurality of transmitters to a plurality of receivers for transmission of the signals representing the transformed data vector.
32. 32. The system of claim 31 , wherein the nonlinear transformation is a first nonlinear transformation, and the at least one processor is further configured to generate the transformed data vector by applying a second nonlinear transformation prior to transmitting the signals representing the transformed data vector to the multiple transmitters.
33. The plurality of sets of complex numbers is a first plurality of sets of complex numbers, and the at least one processor is configured to: identifying a second plurality of complex sets of the data vector, the second plurality of complex sets being different from the first plurality of complex sets; 32. The system of claim 31, further configured to: generate the transformed data vector by applying a second nonlinear transform to each set of complex numbers from the second plurality of sets of complex numbers.
34. 34. The system of claim 33, wherein applying the nonlinear transform to each set of complex numbers from the first plurality of sets of complex numbers and applying the nonlinear transform to each set of complex numbers from the second plurality of sets of complex numbers are performed substantially in parallel.
35. 32. The system of claim 31 , wherein the nonlinear transformation is a first nonlinear transformation, and the at least one processor is further configured to generate the transformed data vector by applying a second nonlinear transformation to each set of complex numbers from the plurality of sets of complex numbers, and wherein the first nonlinear transformation and the second nonlinear transformation are performed substantially in parallel.
36. 32. The system of claim 31, wherein generating the transformed data vector further comprises performing a linear transformation after applying the nonlinear transformation.
37. 32. The system of claim 31, wherein generating the transformed data vector further comprises performing a discrete Fourier transform after applying the nonlinear transformation.
38. 32. The system of claim 31, wherein the multiple receivers include multiple antenna arrays, and the multiple receivers and the multiple transmitters are configured to perform multiple-input multiple-output (MIMO) operations.
39. 32. The system of claim 31, wherein the nonlinear transformation is a norm-preserving transformation.
Citation Information
Patent Citations
Encryption processing device, encryption processing method, and program
JP2012215813A
Data encryption on the physical layer of a data transmission system
US20050055546A1
Device and method for modulated waveform encryption
US20170150348A1
Method of adding encryption / encoding element to the modulation / demodulation process
US6157679A